rubybreaker 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ABOUT.md +20 -0
- data/NEWS +5 -0
- data/README.md +16 -352
- data/Rakefile +30 -16
- data/TOPICS.md +55 -0
- data/TUTORIAL.md +291 -0
- data/VERSION +1 -1
- data/bin/rubybreaker +32 -14
- data/lib/rubybreaker/runtime/monitor.rb +1 -1
- data/lib/rubybreaker/runtime.rb +41 -21
- data/lib/rubybreaker/task.rb +15 -9
- data/lib/rubybreaker/test/rspec.rb +3 -3
- data/lib/rubybreaker/test/testcase.rb +3 -3
- data/lib/rubybreaker.rb +31 -16
- data/test/integrated/{tc_both_broken_breakable.rb → tc_both_documented_and_undocumented.rb} +3 -4
- data/test/integrated/tc_class_methods.rb +1 -1
- data/test/integrated/tc_inherit_broken.rb +1 -1
- data/test/integrated/tc_method_missing.rb +1 -1
- data/test/integrated/tc_namespace.rb +1 -1
- data/test/integrated/tc_simple1.rb +1 -1
- data/test/testtask/tc_testtask.rb +2 -2
- data/test/ts_integrated.rb +1 -1
- data/test/ts_rspec.rb +1 -1
- data/webpage/about.html +50 -0
- data/webpage/footer.html +6 -1
- data/webpage/header.html +9 -3
- data/webpage/images/logo.png +0 -0
- data/webpage/images/title.png +0 -0
- data/webpage/index.html +31 -367
- data/webpage/rdoc/Object.html +3 -103
- data/webpage/rdoc/Rake/RubyBreakerTestTask.html +80 -18
- data/webpage/rdoc/Rake.html +3 -7
- data/webpage/rdoc/RubyBreaker/Breakable.html +4 -8
- data/webpage/rdoc/RubyBreaker/Broken.html +4 -8
- data/webpage/rdoc/RubyBreaker/Context.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/InternalError.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/InvalidSubtypeCheck.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/InvalidTypeConstruction.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/SubtypeFailure.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/TypeError.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors/UserError.html +3 -7
- data/webpage/rdoc/RubyBreaker/Errors.html +3 -7
- data/webpage/rdoc/RubyBreaker/ObjectPosition.html +3 -7
- data/webpage/rdoc/RubyBreaker/Position.html +3 -7
- data/webpage/rdoc/RubyBreaker/RDocSupport.html +3 -7
- data/webpage/rdoc/RubyBreaker/RubyTypeUtils.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/Inspector.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/MethodInfo.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/Monitor.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/MonitorInstaller.html +10 -14
- data/webpage/rdoc/RubyBreaker/Runtime/MonitorSwitch.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/MonitorUtils.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/ObjectWrapper.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/Pluggable.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/TypeSigParser.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/TypeSigUnparser.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime/TypeSystem.html +3 -7
- data/webpage/rdoc/RubyBreaker/Runtime.html +42 -39
- data/webpage/rdoc/RubyBreaker/TypeComparer.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/AnyType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/BlockType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/DuckType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/FusionType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/MethodListType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/MethodType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/NilType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/NominalType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/OptionalType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/OrType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/SelfType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/Type.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs/VarLengthType.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeDefs.html +3 -7
- data/webpage/rdoc/RubyBreaker/TypeUnparser.html +3 -7
- data/webpage/rdoc/RubyBreaker/Typing.html +3 -7
- data/webpage/rdoc/RubyBreaker/Util.html +3 -7
- data/webpage/rdoc/RubyBreaker.html +48 -15
- data/webpage/rdoc/Test/Unit.html +3 -7
- data/webpage/rdoc/Test.html +3 -7
- data/webpage/rdoc/created.rid +18 -17
- data/webpage/rdoc/index.html +3 -7
- data/webpage/rdoc/js/search_index.js +1 -1
- data/webpage/rdoc/table_of_contents.html +28 -36
- data/webpage/rubybreaker.css +8 -6
- data/webpage/topics.html +85 -0
- data/webpage/tutorial.html +331 -0
- metadata +14 -8
- data/lib/rubybreaker/doc.rb +0 -3
- data/webpage/rdoc/Kernel.html +0 -286
- data/webpage/rdoc/Test/Unit/TestCase.html +0 -309
|
@@ -1 +1 @@
|
|
|
1
|
-
var search_data = {"index":{"searchIndex":["kernel","object","rake","rubybreakertesttask","rubybreaker","breakable","broken","context","errors","internalerror","invalidsubtypecheck","invalidtypeconstruction","subtypefailure","typeerror","usererror","objectposition","position","rdocsupport","rubytypeutils","runtime","inspector","methodinfo","monitor","monitorinstaller","monitorswitch","monitorutils","objectwrapper","pluggable","typesigparser","typesigunparser","typesystem","typecomparer","typedefs","anytype","blocktype","ducktype","fusiontype","methodlisttype","methodtype","niltype","nominaltype","optionaltype","ortype","selftype","type","varlengthtype","typeunparser","typing","util","test","unit","testcase","\"#{rubybreaker_rspec_prefix}_describe\"()","__rubybreaker_initialize()","__rubybreaker_obj()","__rubybreaker_type()","add_meth()","after_method()","after_method_call()","before_method()","before_method_call()","breakable()","breakable()","camelize()","compare()","convert_caller_to_pos()","defined_logger?()","describe()","eql?()","error()","export_to_yaml()","format_with_msg()","get()","get_alt_meth_name()","get_orig_meth_name()","get_self()","import_from_yaml()","included()","included()","inspect_all()","inspect_class_meth()","inspect_meth()","inspect_meths()","install_module_monitor()","instrument()","is_module?()","is_object_wrapped?()","log()","lub()","lub_helper()","method_missing()","mod()","monitor()","monitor_after_method()","monitor_before_method()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","parse()","pop()","pp_methods()","pp_module()","push()","rename_meth()","respond_to?()","route()","run()","set()","set_self()","set_to()","subclass_rel?()","submodule_rel?()","subtype_of?()","subtype_rel?()","to_s()","to_s()","turn_off()","turn_on()","typesig()","underscore()","unparse()","unparse()","unparse()","verbose()"],"longSearchIndex":["kernel","object","rake","rake::rubybreakertesttask","rubybreaker","rubybreaker::breakable","rubybreaker::broken","rubybreaker::context","rubybreaker::errors","rubybreaker::errors::internalerror","rubybreaker::errors::invalidsubtypecheck","rubybreaker::errors::invalidtypeconstruction","rubybreaker::errors::subtypefailure","rubybreaker::errors::typeerror","rubybreaker::errors::usererror","rubybreaker::objectposition","rubybreaker::position","rubybreaker::rdocsupport","rubybreaker::rubytypeutils","rubybreaker::runtime","rubybreaker::runtime::inspector","rubybreaker::runtime::methodinfo","rubybreaker::runtime::monitor","rubybreaker::runtime::monitorinstaller","rubybreaker::runtime::monitorswitch","rubybreaker::runtime::monitorutils","rubybreaker::runtime::objectwrapper","rubybreaker::runtime::pluggable","rubybreaker::runtime::typesigparser","rubybreaker::runtime::typesigunparser","rubybreaker::runtime::typesystem","rubybreaker::typecomparer","rubybreaker::typedefs","rubybreaker::typedefs::anytype","rubybreaker::typedefs::blocktype","rubybreaker::typedefs::ducktype","rubybreaker::typedefs::fusiontype","rubybreaker::typedefs::methodlisttype","rubybreaker::typedefs::methodtype","rubybreaker::typedefs::niltype","rubybreaker::typedefs::nominaltype","rubybreaker::typedefs::optionaltype","rubybreaker::typedefs::ortype","rubybreaker::typedefs::selftype","rubybreaker::typedefs::type","rubybreaker::typedefs::varlengthtype","rubybreaker::typeunparser","rubybreaker::typing","rubybreaker::util","test","test::unit","test::unit::testcase","object#\"#{rubybreaker_rspec_prefix}_describe\"()","test::unit::testcase#__rubybreaker_initialize()","rubybreaker::runtime::objectwrapper#__rubybreaker_obj()","rubybreaker::runtime::objectwrapper#__rubybreaker_type()","rubybreaker::typedefs::ducktype#add_meth()","rubybreaker::runtime::typesystem#after_method()","rubybreaker::runtime::pluggable#after_method_call()","rubybreaker::runtime::typesystem#before_method()","rubybreaker::runtime::pluggable#before_method_call()","rubybreaker::breakable()","rubybreaker::runtime::breakable()","rubybreaker::util::camelize()","rubybreaker::typecomparer::compare()","rubybreaker::position::convert_caller_to_pos()","rubybreaker::defined_logger?()","object#describe()","rubybreaker::typedefs::type#eql?()","rubybreaker::error()","rubybreaker::rdocsupport::export_to_yaml()","rubybreaker::context#format_with_msg()","rubybreaker::position::get()","rubybreaker::runtime::monitorutils::get_alt_meth_name()","rubybreaker::runtime::monitorutils::get_orig_meth_name()","rubybreaker::typedefs::selftype::get_self()","rubybreaker::rdocsupport::import_from_yaml()","rubybreaker::breakable::included()","rubybreaker::broken::included()","rubybreaker::runtime::inspector::inspect_all()","rubybreaker::runtime::inspector::inspect_class_meth()","rubybreaker::runtime::inspector::inspect_meth()","rubybreaker::runtime::inspector::inspect_meths()","rubybreaker::runtime::monitorinstaller::install_module_monitor()","rubybreaker::runtime::instrument()","rubybreaker::runtime::monitorinstaller::is_module?()","rubybreaker::runtime::typesystem#is_object_wrapped?()","rubybreaker::log()","rubybreaker::runtime::typesystem#lub()","rubybreaker::runtime::typesystem#lub_helper()","rubybreaker::runtime::objectwrapper#method_missing()","rubybreaker::typedefs::fusiontype#mod()","rubybreaker::monitor()","rubybreaker::runtime::monitor#monitor_after_method()","rubybreaker::runtime::monitor#monitor_before_method()","rake::rubybreakertesttask::new()","rubybreaker::context::new()","rubybreaker::errors::internalerror::new()","rubybreaker::errors::invalidsubtypecheck::new()","rubybreaker::errors::usererror::new()","rubybreaker::objectposition::new()","rubybreaker::position::new()","rubybreaker::runtime::methodinfo::new()","rubybreaker::runtime::monitor::new()","rubybreaker::runtime::monitorswitch::new()","rubybreaker::runtime::objectwrapper::new()","rubybreaker::typedefs::anytype::new()","rubybreaker::typedefs::blocktype::new()","rubybreaker::typedefs::ducktype::new()","rubybreaker::typedefs::fusiontype::new()","rubybreaker::typedefs::methodlisttype::new()","rubybreaker::typedefs::methodtype::new()","rubybreaker::typedefs::niltype::new()","rubybreaker::typedefs::nominaltype::new()","rubybreaker::typedefs::optionaltype::new()","rubybreaker::typedefs::ortype::new()","rubybreaker::typedefs::selftype::new()","rubybreaker::typedefs::type::new()","rubybreaker::typedefs::varlengthtype::new()","test::unit::testcase::new()","rubybreaker::runtime::typesigparser::parse()","rubybreaker::context#pop()","rubybreaker::runtime::typesigunparser::pp_methods()","rubybreaker::runtime::typesigunparser::pp_module()","rubybreaker::context#push()","rubybreaker::runtime::monitorinstaller::rename_meth()","rubybreaker::runtime::objectwrapper#respond_to?()","rubybreaker::runtime::monitorutils::route()","rubybreaker::run()","rubybreaker::position::set()","rubybreaker::typedefs::selftype::set_self()","rubybreaker::runtime::monitorswitch#set_to()","rubybreaker::rubytypeutils::subclass_rel?()","rubybreaker::rubytypeutils::submodule_rel?()","rubybreaker::typedefs::type#subtype_of?()","rubybreaker::typing::subtype_rel?()","rubybreaker::objectposition#to_s()","rubybreaker::position#to_s()","rubybreaker::runtime::monitorswitch#turn_off()","rubybreaker::runtime::monitorswitch#turn_on()","kernel#typesig()","rubybreaker::util::underscore()","rubybreaker::runtime::typesigunparser::unparse()","rubybreaker::typedefs::type#unparse()","rubybreaker::typeunparser::unparse()","rubybreaker::verbose()"],"info":[["Kernel","","Kernel.html","","<p>This method is available by default.\n"],["Object","","Object.html","",""],["Rake","","Rake.html","",""],["Rake::RubyBreakerTestTask","","Rake/RubyBreakerTestTask.html","","<p>This class can be used as a replacement for Rake::TestTask. It is a\nsubclass of Rake::TestTask and maintains …\n"],["RubyBreaker","","RubyBreaker.html","","<p>-\n\n<pre>This file contains utility functions that are useful for the Runtime\nLibrary.</pre>\n<p>RubyBreaker is a dynamic …\n"],["RubyBreaker::Breakable","","RubyBreaker/Breakable.html","","<p><strong>DEPRECATED</strong>: Use +Runtime.breakable()+ or\n+RubyBreaker.run()+ method\n\n<pre>instead.</pre>\n"],["RubyBreaker::Broken","","RubyBreaker/Broken.html","","<p><strong>DEPRECATED</strong>: It has no effect.\n"],["RubyBreaker::Context","","RubyBreaker/Context.html","","<p>This class represents a context which consists of one or more positions. A\nposition can refer to a physical …\n"],["RubyBreaker::Errors","","RubyBreaker/Errors.html","","<p>This module contains errors used by RubyBreaker.\n"],["RubyBreaker::Errors::InternalError","","RubyBreaker/Errors/InternalError.html","","<p>This class is a base class for any internal errors. It should be used to\ninform the faults within the …\n"],["RubyBreaker::Errors::InvalidSubtypeCheck","","RubyBreaker/Errors/InvalidSubtypeCheck.html","","<p>This error is thrown when a subtype check is not even appropriate for two\ngiven types. It should NOT …\n"],["RubyBreaker::Errors::InvalidTypeConstruction","","RubyBreaker/Errors/InvalidTypeConstruction.html","","<p>This error is thrown when a type is constructed with invalid elements.\n"],["RubyBreaker::Errors::SubtypeFailure","","RubyBreaker/Errors/SubtypeFailure.html","",""],["RubyBreaker::Errors::TypeError","","RubyBreaker/Errors/TypeError.html","",""],["RubyBreaker::Errors::UserError","","RubyBreaker/Errors/UserError.html","","<p>This class is a base class for any user errors. Unlike internal error, it\nshould use a Context to inform …\n"],["RubyBreaker::ObjectPosition","","RubyBreaker/ObjectPosition.html","","<p>This class represents a position with respect to an object and the name of\na method being invoked.\n"],["RubyBreaker::Position","","RubyBreaker/Position.html","","<p>This class represents a position of the type acquired from either the type\nsignature or code during runtime. …\n"],["RubyBreaker::RDocSupport","","RubyBreaker/RDocSupport.html","","<p>This module has functionalities that are necessary for supporting RDoc\noutput\n"],["RubyBreaker::RubyTypeUtils","","RubyBreaker/RubyTypeUtils.html","",""],["RubyBreaker::Runtime","","RubyBreaker/Runtime.html","",""],["RubyBreaker::Runtime::Inspector","","RubyBreaker/Runtime/Inspector.html","","<p>This module inspects type information gathered so far.\n"],["RubyBreaker::Runtime::MethodInfo","","RubyBreaker/Runtime/MethodInfo.html","","<p>This class has information (and data) of the method being called. Used by\nPluggable and Monitor\n"],["RubyBreaker::Runtime::Monitor","","RubyBreaker/Runtime/Monitor.html","","<p>This class monitors method calls before and after. It simply reroutes the\nresponsibility to the appropriate …\n"],["RubyBreaker::Runtime::MonitorInstaller","","RubyBreaker/Runtime/MonitorInstaller.html","","<p>This module installs a monitor in the object.\n"],["RubyBreaker::Runtime::MonitorSwitch","","RubyBreaker/Runtime/MonitorSwitch.html","","<p>This class is a switch to turn on and off the type monitoring system. It is\nimportant to turn off the …\n"],["RubyBreaker::Runtime::MonitorUtils","","RubyBreaker/Runtime/MonitorUtils.html","","<p>This module contains helper methods for monitoring objects and modules.\n"],["RubyBreaker::Runtime::ObjectWrapper","","RubyBreaker/Runtime/ObjectWrapper.html","","<p>This class represents the shell object that wraps around another object. \nNote that it is a subclass …\n"],["RubyBreaker::Runtime::Pluggable","","RubyBreaker/Runtime/Pluggable.html","","<p>Any Pluggable module can be “plugged” into the RubyBreaker monitoring\nsystem. For example, …\n"],["RubyBreaker::Runtime::TypeSigParser","","RubyBreaker/Runtime/TypeSigParser.html","",""],["RubyBreaker::Runtime::TypeSigUnparser","","RubyBreaker/Runtime/TypeSigUnparser.html","","<p>This module handles unparsing type signatures.\n"],["RubyBreaker::Runtime::TypeSystem","","RubyBreaker/Runtime/TypeSystem.html","","<p>This is the default type system for RubyBreaker. It can be overridden by a\nuser specified type system. …\n"],["RubyBreaker::TypeComparer","","RubyBreaker/TypeComparer.html","","<p>This module compares two RubyBreaker-defined types for the syntactic\nequivalence.\n"],["RubyBreaker::TypeDefs","","RubyBreaker/TypeDefs.html","","<p>This module contains all RubyBreaker type definitions. This module has to\nbe included to the module if …\n"],["RubyBreaker::TypeDefs::AnyType","","RubyBreaker/TypeDefs/AnyType.html","","<p>This type can represent any object\n"],["RubyBreaker::TypeDefs::BlockType","","RubyBreaker/TypeDefs/BlockType.html","","<p>This class represents a block (in a method). It has zero or more argument \ntypes, nested block type (optional), …\n"],["RubyBreaker::TypeDefs::DuckType","","RubyBreaker/TypeDefs/DuckType.html","","<p>This class represents any object with certain methods Usage: [m1,m2,…]\nwhere m1…mn are method names …\n"],["RubyBreaker::TypeDefs::FusionType","","RubyBreaker/TypeDefs/FusionType.html","","<p>This class represents any object that has certain methods whose types are\nsame as the given nominal type’s …\n"],["RubyBreaker::TypeDefs::MethodListType","","RubyBreaker/TypeDefs/MethodListType.html","","<p>This class represents multiple method types.\n"],["RubyBreaker::TypeDefs::MethodType","","RubyBreaker/TypeDefs/MethodType.html","","<p>This class represents a method and is essentially same as block type \nexcept the method name.\n"],["RubyBreaker::TypeDefs::NilType","","RubyBreaker/TypeDefs/NilType.html","","<p>This type represents a nil\n"],["RubyBreaker::TypeDefs::NominalType","","RubyBreaker/TypeDefs/NominalType.html","","<p>This class represents a concrete object like a Numeric or String. It \nstores the actual module in the …\n"],["RubyBreaker::TypeDefs::OptionalType","","RubyBreaker/TypeDefs/OptionalType.html","","<p>This class respresents an optional argument type\n"],["RubyBreaker::TypeDefs::OrType","","RubyBreaker/TypeDefs/OrType.html","","<p>This class represents one of many types\n"],["RubyBreaker::TypeDefs::SelfType","","RubyBreaker/TypeDefs/SelfType.html","","<p>This type represents the self type. Note that this is a subclass of Nominal\nType. It works just like …\n"],["RubyBreaker::TypeDefs::Type","","RubyBreaker/TypeDefs/Type.html","","<p>This class is a catch-all. The constructor of this class must be called\nfrom children via super() in …\n"],["RubyBreaker::TypeDefs::VarLengthType","","RubyBreaker/TypeDefs/VarLengthType.html","","<p>This class represents a variable-length argument type\n"],["RubyBreaker::TypeUnparser","","RubyBreaker/TypeUnparser.html","","<p>This module prints the RubyBreaker types in a user-friendly way.\n"],["RubyBreaker::Typing","","RubyBreaker/Typing.html","","<p>This module contains subtyping logic used in RubyBreaker. See\n<em>rubytype.rb</em> for logic related to subclassing …\n"],["RubyBreaker::Util","","RubyBreaker/Util.html","","<p>This module has utility functions that are useful across all components in\nthe project.\n"],["Test","","Test.html","",""],["Test::Unit","","Test/Unit.html","",""],["Test::Unit::TestCase","","Test/Unit/TestCase.html","","<p>This class is patched to run RubyBreaker along with the test cases.\n"],["\"#{RUBYBREAKER_RSPEC_PREFIX}_describe\"","Object","Object.html#method-i-22-23-7BRUBYBREAKER_RSPEC_PREFIX-7D_describe-22","(*args,&blk)",""],["__rubybreaker_initialize","Test::Unit::TestCase","Test/Unit/TestCase.html#method-i-__rubybreaker_initialize","(*args, &blk)","<p>Save the original constructor method.\n"],["__rubybreaker_obj","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_obj","()","<p>This method returns the original object.\n"],["__rubybreaker_type","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_type","()","<p>This method returns the type gathered so far for this object.\n"],["add_meth","RubyBreaker::TypeDefs::DuckType","RubyBreaker/TypeDefs/DuckType.html#method-i-add_meth","(meth_name)",""],["after_method","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-after_method","(obj, meth_info)","<p>This method occurs after every “monitored” method call. It updates the type\ninformation.\n"],["after_method_call","RubyBreaker::Runtime::Pluggable","RubyBreaker/Runtime/Pluggable.html#method-i-after_method_call","(obj, meth_info)","<p>This method will be invoked right after the actual method is invoked.\n<p>obj — the receiver of the method call …\n"],["before_method","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-before_method","(obj, meth_info)","<p>This method occurs before every “monitored” method call. It wraps each\nargument with the object …\n"],["before_method_call","RubyBreaker::Runtime::Pluggable","RubyBreaker/Runtime/Pluggable.html#method-i-before_method_call","(obj, meth_info)","<p>This method will be invoked right before the actual method is invoked.\n<p>obj — the receiver of the method …\n"],["breakable","RubyBreaker","RubyBreaker.html#method-c-breakable","(*mods)","<p>This method just redirects to Runtime’s method.\n"],["breakable","RubyBreaker::Runtime","RubyBreaker/Runtime.html#method-c-breakable","(*mods)","<p>This method modifies specified modules/classes at the very moment (instead\nof registering them for later). …\n"],["camelize","RubyBreaker::Util","RubyBreaker/Util.html#method-c-camelize","(lower_case_and_underscored_word, first_letter_in_uppercase = true)","<p>File activesupport/lib/active_support/inflector/methods.rb\n"],["compare","RubyBreaker::TypeComparer","RubyBreaker/TypeComparer.html#method-c-compare","(lhs,rhs)","<p>This equal method determines whether two types are\n<strong>syntactically</strong> equivalent. Note that this is NOT a …\n"],["convert_caller_to_pos","RubyBreaker::Position","RubyBreaker/Position.html#method-c-convert_caller_to_pos","(caller_ary, idx=0)","<p>This class method is a utility function to convert a string in the caller()\narray.\n"],["defined_logger?","RubyBreaker","RubyBreaker.html#method-c-defined_logger-3F","()","<p>This method returns true if the logger is already created and false\notherwise.\n"],["describe","Object","Object.html#method-i-describe","(*args,&blk)",""],["eql?","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-eql-3F","(other)","<p>This method compares this object to another object syntactically.\n"],["error","RubyBreaker","RubyBreaker.html#method-c-error","(err, level=:error, &blk)","<p>This method is for reporting an error to the user. It will immediately show\nthe error message but also …\n"],["export_to_yaml","RubyBreaker::RDocSupport","RubyBreaker/RDocSupport.html#method-c-export_to_yaml","(yaml_file, breakable_modules, broken_modules)","<p>This method exports the RubyBreaker output into a yaml file.\n"],["format_with_msg","RubyBreaker::Context","RubyBreaker/Context.html#method-i-format_with_msg","(pp,msg=\"\")",""],["get","RubyBreaker::Position","RubyBreaker/Position.html#method-c-get","()","<p>This class method returns a new position object for the current parsing\nposition.\n"],["get_alt_meth_name","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-get_alt_meth_name","(meth_name)","<p>This method returns the alternative (renamed) method name\n"],["get_orig_meth_name","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-get_orig_meth_name","(meth_name)","<p>This method returns the original method name\n"],["get_self","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-get_self","(mod)","<p>This is a getter method for class variable mod.\n"],["import_from_yaml","RubyBreaker::RDocSupport","RubyBreaker/RDocSupport.html#method-c-import_from_yaml","(yaml_file)","<p>This method imports the RubyBreaker output from a yaml file.\n"],["included","RubyBreaker::Breakable","RubyBreaker/Breakable.html#method-c-included","(mod)",""],["included","RubyBreaker::Broken","RubyBreaker/Broken.html#method-c-included","(mod)",""],["inspect_all","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_all","(mod)","<p>This method inspects the module for all methods. It returns a Hash\ncontaining (method name, method type) …\n"],["inspect_class_meth","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_class_meth","(mod, mname)","<p>This method inspects the module for the specified class method name. This\nis a shorthand for calling …\n"],["inspect_meth","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_meth","(mod, mname)","<p>This method inspects the module for the type of the specified method.\n"],["inspect_meths","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_meths","(mod, mnames)","<p>Similar to inspect_meth but returns a hash of (mname, mtype) pairs.\n"],["install_module_monitor","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-install_module_monitor","(mod)","<p>Installs an module (class) monitor to the object.\n"],["instrument","RubyBreaker::Runtime","RubyBreaker/Runtime.html#method-c-instrument","()","<p>This method installs a monitor for each breakable module. \n<strong>DEPRECATED</strong>: Use +breakable()+ method instead. …\n"],["is_module?","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-is_module-3F","(recv)","<p>returns true if the receiver is a module or a class\n"],["is_object_wrapped?","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-is_object_wrapped-3F","(obj)","<p>Check if the object is wrapped by a monitor\n"],["log","RubyBreaker","RubyBreaker.html#method-c-log","(str, level=:debug, context=nil, &blk)","<p>This method logs a non-error (or error) message but with the provided\ncontext.\n"],["lub","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-lub","(obj, meth_type_map, meth_name, retval, *args, &blk)","<p>This method computes the least upper bound of the existing method type and\nnewly observed argument/block/return …\n"],["lub_helper","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-lub_helper","(exist_meth_type, new_meth_type)","<p>This method is a helper for computing the least upper bound. It handles the\ncase where existing method …\n"],["method_missing","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-method_missing","(mname,*args,&blk)","<p>This method missing method redirects all other method calls.\n"],["mod","RubyBreaker::TypeDefs::FusionType","RubyBreaker/TypeDefs/FusionType.html#method-i-mod","()","<p>This method gets the actual module of the nominal type for this fusion\ntype. This is a shorthand for …\n"],["monitor","RubyBreaker","RubyBreaker.html#method-c-monitor","()","<p><strong>DEPRECATED</strong>: Use +RubyBreaker.run()+ to indicate the point\nof entry.\n"],["monitor_after_method","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-i-monitor_after_method","(obj, meth_info)","<p>This method is invoked after the actual method is invoked.\n"],["monitor_before_method","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-i-monitor_before_method","(obj, meth_info)","<p>Starts monitoring of a method; it wraps each argument so that they can\ngather type information in the …\n"],["new","Rake::RubyBreakerTestTask","Rake/RubyBreakerTestTask.html#method-c-new","(taskname=\"\", *args, &blk)","<p>This overrides the testtask’s constructor. In addition to the original\nbehavior, it keeps track of RubyBreaker …\n"],["new","RubyBreaker::Context","RubyBreaker/Context.html#method-c-new","(pos)",""],["new","RubyBreaker::Errors::InternalError","RubyBreaker/Errors/InternalError.html#method-c-new","(msg)",""],["new","RubyBreaker::Errors::InvalidSubtypeCheck","RubyBreaker/Errors/InvalidSubtypeCheck.html#method-c-new","(msg,pos=nil)",""],["new","RubyBreaker::Errors::UserError","RubyBreaker/Errors/UserError.html#method-c-new","(msg, ctx)",""],["new","RubyBreaker::ObjectPosition","RubyBreaker/ObjectPosition.html#method-c-new","(obj, meth_name)",""],["new","RubyBreaker::Position","RubyBreaker/Position.html#method-c-new","(file=\"\",line=-1,col=-1,meth=\"\")",""],["new","RubyBreaker::Runtime::MethodInfo","RubyBreaker/Runtime/MethodInfo.html#method-c-new","(meth_name, args, blk, ret)",""],["new","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-c-new","(mod, pluggable)",""],["new","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-c-new","()",""],["new","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-c-new","(obj)",""],["new","RubyBreaker::TypeDefs::AnyType","RubyBreaker/TypeDefs/AnyType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::BlockType","RubyBreaker/TypeDefs/BlockType.html#method-c-new","(arg_types=[],blk_type=nil,ret_type=nil,*args)",""],["new","RubyBreaker::TypeDefs::DuckType","RubyBreaker/TypeDefs/DuckType.html#method-c-new","(meth_names=[],*args)",""],["new","RubyBreaker::TypeDefs::FusionType","RubyBreaker/TypeDefs/FusionType.html#method-c-new","(nom_type,meth_names=[],*args)",""],["new","RubyBreaker::TypeDefs::MethodListType","RubyBreaker/TypeDefs/MethodListType.html#method-c-new","(types=[],*args)",""],["new","RubyBreaker::TypeDefs::MethodType","RubyBreaker/TypeDefs/MethodType.html#method-c-new","(meth_name,arg_types=[],blk_type=nil,ret_type=nil,*args)",""],["new","RubyBreaker::TypeDefs::NilType","RubyBreaker/TypeDefs/NilType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::NominalType","RubyBreaker/TypeDefs/NominalType.html#method-c-new","(mod=nil,*args)",""],["new","RubyBreaker::TypeDefs::OptionalType","RubyBreaker/TypeDefs/OptionalType.html#method-c-new","(type,*args)",""],["new","RubyBreaker::TypeDefs::OrType","RubyBreaker/TypeDefs/OrType.html#method-c-new","(types=[],*args)",""],["new","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::VarLengthType","RubyBreaker/TypeDefs/VarLengthType.html#method-c-new","(type,*args)",""],["new","Test::Unit::TestCase","Test/Unit/TestCase.html#method-c-new","(*args, &blk)","<p>This method overrides the original constructor to run RubyBreaker before\ncalling the original constructor. …\n"],["parse","RubyBreaker::Runtime::TypeSigParser","RubyBreaker/Runtime/TypeSigParser.html#method-c-parse","(str)","<p>This is a simple redirecting method for parsing type signature. The only\nspecial thing about this method …\n"],["pop","RubyBreaker::Context","RubyBreaker/Context.html#method-i-pop","()",""],["pp_methods","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-pp_methods","(pp, meth_type_map, opts={})","<p>Pretty prints type information for methods\n"],["pp_module","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-pp_module","(pp, mod, opts={})","<p>Pretty prints type information for the module/class\n"],["push","RubyBreaker::Context","RubyBreaker/Context.html#method-i-push","(pos)",""],["rename_meth","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-rename_meth","(recv, meth_name)","<p>renames the method in essence; this method also “installs” the module\nmonitor for the class …\n"],["respond_to?","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-respond_to-3F","(mname)","<p>Only behave differently if it’s looking for <code>WRAPPED_INDICATOR</code>\nmethod\n"],["route","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-route","(obj,meth_name,*args,&blk)","<p>This will do the actual routing work for a particular “monitored” method\ncall.\n<p>obj — is the object …\n"],["run","RubyBreaker","RubyBreaker.html#method-c-run","(*mods)","<p>This method runs RubyBreaker for a particular test case (class). This is a\nbit different from running …\n"],["set","RubyBreaker::Position","RubyBreaker/Position.html#method-c-set","(file,line,col)","<p>This class method is to set the current parsing position.\n"],["set_self","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-set_self","(mod)","<p>This is a setter method for class variable mod. NOTE: It is set every time\ntypesig() is called\n"],["set_to","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-set_to","(mode)",""],["subclass_rel?","RubyBreaker::RubyTypeUtils","RubyBreaker/RubyTypeUtils.html#method-c-subclass_rel-3F","(lhs, rhs)","<p>Checks if lhs is a subclass of rhs\n"],["submodule_rel?","RubyBreaker::RubyTypeUtils","RubyBreaker/RubyTypeUtils.html#method-c-submodule_rel-3F","(lhs,rhs)","<p>Checks if lhs is a sub-module of rhs\n"],["subtype_of?","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-subtype_of-3F","(rhs)","<p>This is a shorthand for calling Typing.subtype_rel?\n"],["subtype_rel?","RubyBreaker::Typing","RubyBreaker/Typing.html#method-c-subtype_rel-3F","(lhs, rhs)","<p>This method determines if one type is a subtype of another. This check is\nfor RubyBreaker defined types. …\n"],["to_s","RubyBreaker::ObjectPosition","RubyBreaker/ObjectPosition.html#method-i-to_s","()",""],["to_s","RubyBreaker::Position","RubyBreaker/Position.html#method-i-to_s","()",""],["turn_off","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-turn_off","()",""],["turn_on","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-turn_on","()",""],["typesig","Kernel","Kernel.html#method-i-typesig","(str)",""],["underscore","RubyBreaker::Util","RubyBreaker/Util.html#method-c-underscore","(camel_cased_word)","<p>File activesupport/lib/active_support/inflector/methods.rb, line 48\n"],["unparse","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-unparse","(mod, opts={})","<p>This method unparses the type information in the specified module,\ndisplaying one or more type signatures …\n"],["unparse","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-unparse","(opts={})","<p>This method is a shorthand for calling TypeUnparser.unparse(t).\n"],["unparse","RubyBreaker::TypeUnparser","RubyBreaker/TypeUnparser.html#method-c-unparse","(t, opts={})","<p>This method unparses the RubyBreaker type according to the specified\noptions.\n<p>t — RubyBreaker type\n<p>opts — \n"],["verbose","RubyBreaker","RubyBreaker.html#method-c-verbose","(str, &blk)","<p>This method will display verbose message. It is not for debugging but to\ninform users of each stage in …\n"]]}}
|
|
1
|
+
var search_data = {"index":{"searchIndex":["object","rake","rubybreakertesttask","rubybreaker","breakable","broken","context","errors","internalerror","invalidsubtypecheck","invalidtypeconstruction","subtypefailure","typeerror","usererror","objectposition","position","rdocsupport","rubytypeutils","runtime","inspector","methodinfo","monitor","monitorinstaller","monitorswitch","monitorutils","objectwrapper","pluggable","typesigparser","typesigunparser","typesystem","typecomparer","typedefs","anytype","blocktype","ducktype","fusiontype","methodlisttype","methodtype","niltype","nominaltype","optionaltype","ortype","selftype","type","varlengthtype","typeunparser","typing","util","test","unit","__rubybreaker_obj()","__rubybreaker_type()","add_meth()","after_method()","after_method_call()","before_method()","before_method_call()","break()","break()","breakable()","breakable()","breakable()","breakable=()","camelize()","compare()","convert_caller_to_pos()","defined_logger?()","eql?()","error()","export_to_yaml()","format_with_msg()","get()","get_alt_meth_name()","get_orig_meth_name()","get_self()","import_from_yaml()","included()","included()","inspect_all()","inspect_class_meth()","inspect_meth()","inspect_meths()","install_monitor()","instrument()","is_module?()","is_object_wrapped?()","log()","lub()","lub_helper()","method_missing()","mod()","monitor()","monitor_after_method()","monitor_before_method()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","parse()","pop()","pp_methods()","pp_module()","push()","rename_meth()","respond_to?()","route()","run()","set()","set_self()","set_to()","subclass_rel?()","submodule_rel?()","subtype_of?()","subtype_rel?()","to_s()","to_s()","turn_off()","turn_on()","underscore()","unparse()","unparse()","unparse()","verbose()"],"longSearchIndex":["object","rake","rake::rubybreakertesttask","rubybreaker","rubybreaker::breakable","rubybreaker::broken","rubybreaker::context","rubybreaker::errors","rubybreaker::errors::internalerror","rubybreaker::errors::invalidsubtypecheck","rubybreaker::errors::invalidtypeconstruction","rubybreaker::errors::subtypefailure","rubybreaker::errors::typeerror","rubybreaker::errors::usererror","rubybreaker::objectposition","rubybreaker::position","rubybreaker::rdocsupport","rubybreaker::rubytypeutils","rubybreaker::runtime","rubybreaker::runtime::inspector","rubybreaker::runtime::methodinfo","rubybreaker::runtime::monitor","rubybreaker::runtime::monitorinstaller","rubybreaker::runtime::monitorswitch","rubybreaker::runtime::monitorutils","rubybreaker::runtime::objectwrapper","rubybreaker::runtime::pluggable","rubybreaker::runtime::typesigparser","rubybreaker::runtime::typesigunparser","rubybreaker::runtime::typesystem","rubybreaker::typecomparer","rubybreaker::typedefs","rubybreaker::typedefs::anytype","rubybreaker::typedefs::blocktype","rubybreaker::typedefs::ducktype","rubybreaker::typedefs::fusiontype","rubybreaker::typedefs::methodlisttype","rubybreaker::typedefs::methodtype","rubybreaker::typedefs::niltype","rubybreaker::typedefs::nominaltype","rubybreaker::typedefs::optionaltype","rubybreaker::typedefs::ortype","rubybreaker::typedefs::selftype","rubybreaker::typedefs::type","rubybreaker::typedefs::varlengthtype","rubybreaker::typeunparser","rubybreaker::typing","rubybreaker::util","test","test::unit","rubybreaker::runtime::objectwrapper#__rubybreaker_obj()","rubybreaker::runtime::objectwrapper#__rubybreaker_type()","rubybreaker::typedefs::ducktype#add_meth()","rubybreaker::runtime::typesystem#after_method()","rubybreaker::runtime::pluggable#after_method_call()","rubybreaker::runtime::typesystem#before_method()","rubybreaker::runtime::pluggable#before_method_call()","rubybreaker::break()","rubybreaker::runtime::break()","rake::rubybreakertesttask#breakable()","rubybreaker::breakable()","rubybreaker::runtime::breakable()","rake::rubybreakertesttask#breakable=()","rubybreaker::util::camelize()","rubybreaker::typecomparer::compare()","rubybreaker::position::convert_caller_to_pos()","rubybreaker::defined_logger?()","rubybreaker::typedefs::type#eql?()","rubybreaker::error()","rubybreaker::rdocsupport::export_to_yaml()","rubybreaker::context#format_with_msg()","rubybreaker::position::get()","rubybreaker::runtime::monitorutils::get_alt_meth_name()","rubybreaker::runtime::monitorutils::get_orig_meth_name()","rubybreaker::typedefs::selftype::get_self()","rubybreaker::rdocsupport::import_from_yaml()","rubybreaker::breakable::included()","rubybreaker::broken::included()","rubybreaker::runtime::inspector::inspect_all()","rubybreaker::runtime::inspector::inspect_class_meth()","rubybreaker::runtime::inspector::inspect_meth()","rubybreaker::runtime::inspector::inspect_meths()","rubybreaker::runtime::monitorinstaller::install_monitor()","rubybreaker::runtime::instrument()","rubybreaker::runtime::monitorinstaller::is_module?()","rubybreaker::runtime::typesystem#is_object_wrapped?()","rubybreaker::log()","rubybreaker::runtime::typesystem#lub()","rubybreaker::runtime::typesystem#lub_helper()","rubybreaker::runtime::objectwrapper#method_missing()","rubybreaker::typedefs::fusiontype#mod()","rubybreaker::monitor()","rubybreaker::runtime::monitor#monitor_after_method()","rubybreaker::runtime::monitor#monitor_before_method()","rake::rubybreakertesttask::new()","rubybreaker::context::new()","rubybreaker::errors::internalerror::new()","rubybreaker::errors::invalidsubtypecheck::new()","rubybreaker::errors::usererror::new()","rubybreaker::objectposition::new()","rubybreaker::position::new()","rubybreaker::runtime::methodinfo::new()","rubybreaker::runtime::monitor::new()","rubybreaker::runtime::monitorswitch::new()","rubybreaker::runtime::objectwrapper::new()","rubybreaker::typedefs::anytype::new()","rubybreaker::typedefs::blocktype::new()","rubybreaker::typedefs::ducktype::new()","rubybreaker::typedefs::fusiontype::new()","rubybreaker::typedefs::methodlisttype::new()","rubybreaker::typedefs::methodtype::new()","rubybreaker::typedefs::niltype::new()","rubybreaker::typedefs::nominaltype::new()","rubybreaker::typedefs::optionaltype::new()","rubybreaker::typedefs::ortype::new()","rubybreaker::typedefs::selftype::new()","rubybreaker::typedefs::type::new()","rubybreaker::typedefs::varlengthtype::new()","rubybreaker::runtime::typesigparser::parse()","rubybreaker::context#pop()","rubybreaker::runtime::typesigunparser::pp_methods()","rubybreaker::runtime::typesigunparser::pp_module()","rubybreaker::context#push()","rubybreaker::runtime::monitorinstaller::rename_meth()","rubybreaker::runtime::objectwrapper#respond_to?()","rubybreaker::runtime::monitorutils::route()","rubybreaker::run()","rubybreaker::position::set()","rubybreaker::typedefs::selftype::set_self()","rubybreaker::runtime::monitorswitch#set_to()","rubybreaker::rubytypeutils::subclass_rel?()","rubybreaker::rubytypeutils::submodule_rel?()","rubybreaker::typedefs::type#subtype_of?()","rubybreaker::typing::subtype_rel?()","rubybreaker::objectposition#to_s()","rubybreaker::position#to_s()","rubybreaker::runtime::monitorswitch#turn_off()","rubybreaker::runtime::monitorswitch#turn_on()","rubybreaker::util::underscore()","rubybreaker::runtime::typesigunparser::unparse()","rubybreaker::typedefs::type#unparse()","rubybreaker::typeunparser::unparse()","rubybreaker::verbose()"],"info":[["Object","","Object.html","",""],["Rake","","Rake.html","",""],["Rake::RubyBreakerTestTask","","Rake/RubyBreakerTestTask.html","","<p>This class can be used as a replacement for Rake::TestTask. It is a\nsubclass of Rake::TestTask and maintains …\n"],["RubyBreaker","","RubyBreaker.html","","<p>-\n\n<pre>This file contains utility functions that are useful for the Runtime\nLibrary.</pre>\n<p>RubyBreaker is a dynamic …\n"],["RubyBreaker::Breakable","","RubyBreaker/Breakable.html","","<p><strong>DEPRECATED</strong>: Use +Runtime.breakable()+ or\n+RubyBreaker.run()+ method\n\n<pre>instead.</pre>\n"],["RubyBreaker::Broken","","RubyBreaker/Broken.html","","<p><strong>DEPRECATED</strong>: It has no effect.\n"],["RubyBreaker::Context","","RubyBreaker/Context.html","","<p>This class represents a context which consists of one or more positions. A\nposition can refer to a physical …\n"],["RubyBreaker::Errors","","RubyBreaker/Errors.html","","<p>This module contains errors used by RubyBreaker.\n"],["RubyBreaker::Errors::InternalError","","RubyBreaker/Errors/InternalError.html","","<p>This class is a base class for any internal errors. It should be used to\ninform the faults within the …\n"],["RubyBreaker::Errors::InvalidSubtypeCheck","","RubyBreaker/Errors/InvalidSubtypeCheck.html","","<p>This error is thrown when a subtype check is not even appropriate for two\ngiven types. It should NOT …\n"],["RubyBreaker::Errors::InvalidTypeConstruction","","RubyBreaker/Errors/InvalidTypeConstruction.html","","<p>This error is thrown when a type is constructed with invalid elements.\n"],["RubyBreaker::Errors::SubtypeFailure","","RubyBreaker/Errors/SubtypeFailure.html","",""],["RubyBreaker::Errors::TypeError","","RubyBreaker/Errors/TypeError.html","",""],["RubyBreaker::Errors::UserError","","RubyBreaker/Errors/UserError.html","","<p>This class is a base class for any user errors. Unlike internal error, it\nshould use a Context to inform …\n"],["RubyBreaker::ObjectPosition","","RubyBreaker/ObjectPosition.html","","<p>This class represents a position with respect to an object and the name of\na method being invoked.\n"],["RubyBreaker::Position","","RubyBreaker/Position.html","","<p>This class represents a position of the type acquired from either the type\nsignature or code during runtime. …\n"],["RubyBreaker::RDocSupport","","RubyBreaker/RDocSupport.html","","<p>This module has functionalities that are necessary for supporting RDoc\noutput\n"],["RubyBreaker::RubyTypeUtils","","RubyBreaker/RubyTypeUtils.html","",""],["RubyBreaker::Runtime","","RubyBreaker/Runtime.html","",""],["RubyBreaker::Runtime::Inspector","","RubyBreaker/Runtime/Inspector.html","","<p>This module inspects type information gathered so far.\n"],["RubyBreaker::Runtime::MethodInfo","","RubyBreaker/Runtime/MethodInfo.html","","<p>This class has information (and data) of the method being called. Used by\nPluggable and Monitor\n"],["RubyBreaker::Runtime::Monitor","","RubyBreaker/Runtime/Monitor.html","","<p>This class monitors method calls before and after. It simply reroutes the\nresponsibility to the appropriate …\n"],["RubyBreaker::Runtime::MonitorInstaller","","RubyBreaker/Runtime/MonitorInstaller.html","","<p>This module installs a monitor in the object.\n"],["RubyBreaker::Runtime::MonitorSwitch","","RubyBreaker/Runtime/MonitorSwitch.html","","<p>This class is a switch to turn on and off the type monitoring system. It is\nimportant to turn off the …\n"],["RubyBreaker::Runtime::MonitorUtils","","RubyBreaker/Runtime/MonitorUtils.html","","<p>This module contains helper methods for monitoring objects and modules.\n"],["RubyBreaker::Runtime::ObjectWrapper","","RubyBreaker/Runtime/ObjectWrapper.html","","<p>This class represents the shell object that wraps around another object. \nNote that it is a subclass …\n"],["RubyBreaker::Runtime::Pluggable","","RubyBreaker/Runtime/Pluggable.html","","<p>Any Pluggable module can be “plugged” into the RubyBreaker monitoring\nsystem. For example, …\n"],["RubyBreaker::Runtime::TypeSigParser","","RubyBreaker/Runtime/TypeSigParser.html","",""],["RubyBreaker::Runtime::TypeSigUnparser","","RubyBreaker/Runtime/TypeSigUnparser.html","","<p>This module handles unparsing type signatures.\n"],["RubyBreaker::Runtime::TypeSystem","","RubyBreaker/Runtime/TypeSystem.html","","<p>This is the default type system for RubyBreaker. It can be overridden by a\nuser specified type system. …\n"],["RubyBreaker::TypeComparer","","RubyBreaker/TypeComparer.html","","<p>This module compares two RubyBreaker-defined types for the syntactic\nequivalence.\n"],["RubyBreaker::TypeDefs","","RubyBreaker/TypeDefs.html","","<p>This module contains all RubyBreaker type definitions. This module has to\nbe included to the module if …\n"],["RubyBreaker::TypeDefs::AnyType","","RubyBreaker/TypeDefs/AnyType.html","","<p>This type can represent any object\n"],["RubyBreaker::TypeDefs::BlockType","","RubyBreaker/TypeDefs/BlockType.html","","<p>This class represents a block (in a method). It has zero or more argument \ntypes, nested block type (optional), …\n"],["RubyBreaker::TypeDefs::DuckType","","RubyBreaker/TypeDefs/DuckType.html","","<p>This class represents any object with certain methods Usage: [m1,m2,…]\nwhere m1…mn are method names …\n"],["RubyBreaker::TypeDefs::FusionType","","RubyBreaker/TypeDefs/FusionType.html","","<p>This class represents any object that has certain methods whose types are\nsame as the given nominal type’s …\n"],["RubyBreaker::TypeDefs::MethodListType","","RubyBreaker/TypeDefs/MethodListType.html","","<p>This class represents multiple method types.\n"],["RubyBreaker::TypeDefs::MethodType","","RubyBreaker/TypeDefs/MethodType.html","","<p>This class represents a method and is essentially same as block type \nexcept the method name.\n"],["RubyBreaker::TypeDefs::NilType","","RubyBreaker/TypeDefs/NilType.html","","<p>This type represents a nil\n"],["RubyBreaker::TypeDefs::NominalType","","RubyBreaker/TypeDefs/NominalType.html","","<p>This class represents a concrete object like a Numeric or String. It \nstores the actual module in the …\n"],["RubyBreaker::TypeDefs::OptionalType","","RubyBreaker/TypeDefs/OptionalType.html","","<p>This class respresents an optional argument type\n"],["RubyBreaker::TypeDefs::OrType","","RubyBreaker/TypeDefs/OrType.html","","<p>This class represents one of many types\n"],["RubyBreaker::TypeDefs::SelfType","","RubyBreaker/TypeDefs/SelfType.html","","<p>This type represents the self type. Note that this is a subclass of Nominal\nType. It works just like …\n"],["RubyBreaker::TypeDefs::Type","","RubyBreaker/TypeDefs/Type.html","","<p>This class is a catch-all. The constructor of this class must be called\nfrom children via super() in …\n"],["RubyBreaker::TypeDefs::VarLengthType","","RubyBreaker/TypeDefs/VarLengthType.html","","<p>This class represents a variable-length argument type\n"],["RubyBreaker::TypeUnparser","","RubyBreaker/TypeUnparser.html","","<p>This module prints the RubyBreaker types in a user-friendly way.\n"],["RubyBreaker::Typing","","RubyBreaker/Typing.html","","<p>This module contains subtyping logic used in RubyBreaker. See\n<em>rubytype.rb</em> for logic related to subclassing …\n"],["RubyBreaker::Util","","RubyBreaker/Util.html","","<p>This module has utility functions that are useful across all components in\nthe project.\n"],["Test","","Test.html","",""],["Test::Unit","","Test/Unit.html","",""],["__rubybreaker_obj","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_obj","()","<p>This method returns the original object.\n"],["__rubybreaker_type","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_type","()","<p>This method returns the type gathered so far for this object.\n"],["add_meth","RubyBreaker::TypeDefs::DuckType","RubyBreaker/TypeDefs/DuckType.html#method-i-add_meth","(meth_name)",""],["after_method","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-after_method","(obj, meth_info)","<p>This method occurs after every “monitored” method call. It updates the type\ninformation.\n"],["after_method_call","RubyBreaker::Runtime::Pluggable","RubyBreaker/Runtime/Pluggable.html#method-i-after_method_call","(obj, meth_info)","<p>This method will be invoked right after the actual method is invoked.\n<p>obj — the receiver of the method call …\n"],["before_method","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-before_method","(obj, meth_info)","<p>This method occurs before every “monitored” method call. It wraps each\nargument with the object …\n"],["before_method_call","RubyBreaker::Runtime::Pluggable","RubyBreaker/Runtime/Pluggable.html#method-i-before_method_call","(obj, meth_info)","<p>This method will be invoked right before the actual method is invoked.\n<p>obj — the receiver of the method …\n"],["break","RubyBreaker","RubyBreaker.html#method-c-break","(*mods)","<p>This method just redirects to Runtime’s method.\n"],["break","RubyBreaker::Runtime","RubyBreaker/Runtime.html#method-c-break","(*mods)","<p>This method instruments the specified modules/classes at the time of the\ncall.\n"],["breakable","Rake::RubyBreakerTestTask","Rake/RubyBreakerTestTask.html#method-i-breakable","()","<p>DEPRECATED accessor override\n"],["breakable","RubyBreaker","RubyBreaker.html#method-c-breakable","(*mods)","<p>This method just redirects to Runtime’s method.\n<strong>DEPRECATED</strong>: Use +RubyBreaker.break()+ to indicate the …\n"],["breakable","RubyBreaker::Runtime","RubyBreaker/Runtime.html#method-c-breakable","(*mods)","<p>This method modifies specified modules/classes at the very moment (instead\nof registering them for later). …\n"],["breakable=","Rake::RubyBreakerTestTask","Rake/RubyBreakerTestTask.html#method-i-breakable-3D","(*args)","<p>DEPRECATED accessor override\n"],["camelize","RubyBreaker::Util","RubyBreaker/Util.html#method-c-camelize","(lower_case_and_underscored_word, first_letter_in_uppercase = true)","<p>File activesupport/lib/active_support/inflector/methods.rb\n"],["compare","RubyBreaker::TypeComparer","RubyBreaker/TypeComparer.html#method-c-compare","(lhs,rhs)","<p>This equal method determines whether two types are\n<strong>syntactically</strong> equivalent. Note that this is NOT a …\n"],["convert_caller_to_pos","RubyBreaker::Position","RubyBreaker/Position.html#method-c-convert_caller_to_pos","(caller_ary, idx=0)","<p>This class method is a utility function to convert a string in the caller()\narray.\n"],["defined_logger?","RubyBreaker","RubyBreaker.html#method-c-defined_logger-3F","()","<p>This method returns true if the logger is already created and false\notherwise.\n"],["eql?","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-eql-3F","(other)","<p>This method compares this object to another object syntactically.\n"],["error","RubyBreaker","RubyBreaker.html#method-c-error","(err, level=:error, &blk)","<p>This method is for reporting an error to the user. It will immediately show\nthe error message but also …\n"],["export_to_yaml","RubyBreaker::RDocSupport","RubyBreaker/RDocSupport.html#method-c-export_to_yaml","(yaml_file, breakable_modules, broken_modules)","<p>This method exports the RubyBreaker output into a yaml file.\n"],["format_with_msg","RubyBreaker::Context","RubyBreaker/Context.html#method-i-format_with_msg","(pp,msg=\"\")",""],["get","RubyBreaker::Position","RubyBreaker/Position.html#method-c-get","()","<p>This class method returns a new position object for the current parsing\nposition.\n"],["get_alt_meth_name","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-get_alt_meth_name","(meth_name)","<p>This method returns the alternative (renamed) method name\n"],["get_orig_meth_name","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-get_orig_meth_name","(meth_name)","<p>This method returns the original method name\n"],["get_self","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-get_self","(mod)","<p>This is a getter method for class variable mod.\n"],["import_from_yaml","RubyBreaker::RDocSupport","RubyBreaker/RDocSupport.html#method-c-import_from_yaml","(yaml_file)","<p>This method imports the RubyBreaker output from a yaml file.\n"],["included","RubyBreaker::Breakable","RubyBreaker/Breakable.html#method-c-included","(mod)",""],["included","RubyBreaker::Broken","RubyBreaker/Broken.html#method-c-included","(mod)",""],["inspect_all","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_all","(mod)","<p>This method inspects the module for all methods. It returns a Hash\ncontaining (method name, method type) …\n"],["inspect_class_meth","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_class_meth","(mod, mname)","<p>This method inspects the module for the specified class method name. This\nis a shorthand for calling …\n"],["inspect_meth","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_meth","(mod, mname)","<p>This method inspects the module for the type of the specified method.\n"],["inspect_meths","RubyBreaker::Runtime::Inspector","RubyBreaker/Runtime/Inspector.html#method-c-inspect_meths","(mod, mnames)","<p>Similar to inspect_meth but returns a hash of (mname, mtype) pairs.\n"],["install_monitor","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-install_monitor","(mod)","<p>Installs an module (class) monitor to the object.\n"],["instrument","RubyBreaker::Runtime","RubyBreaker/Runtime.html#method-c-instrument","()","<p>This method installs a monitor for each breakable module. \n<strong>DEPRECATED</strong>: Use +breakable()+ method instead. …\n"],["is_module?","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-is_module-3F","(recv)","<p>returns true if the receiver is a module or a class\n"],["is_object_wrapped?","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-is_object_wrapped-3F","(obj)","<p>Check if the object is wrapped by a monitor\n"],["log","RubyBreaker","RubyBreaker.html#method-c-log","(str, level=:debug, context=nil, &blk)","<p>This method logs a non-error (or error) message but with the provided\ncontext.\n"],["lub","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-lub","(obj, meth_type_map, meth_name, retval, *args, &blk)","<p>This method computes the least upper bound of the existing method type and\nnewly observed argument/block/return …\n"],["lub_helper","RubyBreaker::Runtime::TypeSystem","RubyBreaker/Runtime/TypeSystem.html#method-i-lub_helper","(exist_meth_type, new_meth_type)","<p>This method is a helper for computing the least upper bound. It handles the\ncase where existing method …\n"],["method_missing","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-method_missing","(mname,*args,&blk)","<p>This method missing method redirects all other method calls.\n"],["mod","RubyBreaker::TypeDefs::FusionType","RubyBreaker/TypeDefs/FusionType.html#method-i-mod","()","<p>This method gets the actual module of the nominal type for this fusion\ntype. This is a shorthand for …\n"],["monitor","RubyBreaker","RubyBreaker.html#method-c-monitor","()","<p><strong>DEPRECATED</strong>: Use +RubyBreaker.run()+ to indicate the point\nof entry.\n"],["monitor_after_method","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-i-monitor_after_method","(obj, meth_info)","<p>This method is invoked after the actual method is invoked.\n"],["monitor_before_method","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-i-monitor_before_method","(obj, meth_info)","<p>Starts monitoring of a method; it wraps each argument so that they can\ngather type information in the …\n"],["new","Rake::RubyBreakerTestTask","Rake/RubyBreakerTestTask.html#method-c-new","(taskname=\"\", *args, &blk)","<p>This overrides the testtask’s constructor. In addition to the original\nbehavior, it keeps track of RubyBreaker …\n"],["new","RubyBreaker::Context","RubyBreaker/Context.html#method-c-new","(pos)",""],["new","RubyBreaker::Errors::InternalError","RubyBreaker/Errors/InternalError.html#method-c-new","(msg)",""],["new","RubyBreaker::Errors::InvalidSubtypeCheck","RubyBreaker/Errors/InvalidSubtypeCheck.html#method-c-new","(msg,pos=nil)",""],["new","RubyBreaker::Errors::UserError","RubyBreaker/Errors/UserError.html#method-c-new","(msg, ctx)",""],["new","RubyBreaker::ObjectPosition","RubyBreaker/ObjectPosition.html#method-c-new","(obj, meth_name)",""],["new","RubyBreaker::Position","RubyBreaker/Position.html#method-c-new","(file=\"\",line=-1,col=-1,meth=\"\")",""],["new","RubyBreaker::Runtime::MethodInfo","RubyBreaker/Runtime/MethodInfo.html#method-c-new","(meth_name, args, blk, ret)",""],["new","RubyBreaker::Runtime::Monitor","RubyBreaker/Runtime/Monitor.html#method-c-new","(mod, pluggable)",""],["new","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-c-new","()",""],["new","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-c-new","(obj)",""],["new","RubyBreaker::TypeDefs::AnyType","RubyBreaker/TypeDefs/AnyType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::BlockType","RubyBreaker/TypeDefs/BlockType.html#method-c-new","(arg_types=[],blk_type=nil,ret_type=nil,*args)",""],["new","RubyBreaker::TypeDefs::DuckType","RubyBreaker/TypeDefs/DuckType.html#method-c-new","(meth_names=[],*args)",""],["new","RubyBreaker::TypeDefs::FusionType","RubyBreaker/TypeDefs/FusionType.html#method-c-new","(nom_type,meth_names=[],*args)",""],["new","RubyBreaker::TypeDefs::MethodListType","RubyBreaker/TypeDefs/MethodListType.html#method-c-new","(types=[],*args)",""],["new","RubyBreaker::TypeDefs::MethodType","RubyBreaker/TypeDefs/MethodType.html#method-c-new","(meth_name,arg_types=[],blk_type=nil,ret_type=nil,*args)",""],["new","RubyBreaker::TypeDefs::NilType","RubyBreaker/TypeDefs/NilType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::NominalType","RubyBreaker/TypeDefs/NominalType.html#method-c-new","(mod=nil,*args)",""],["new","RubyBreaker::TypeDefs::OptionalType","RubyBreaker/TypeDefs/OptionalType.html#method-c-new","(type,*args)",""],["new","RubyBreaker::TypeDefs::OrType","RubyBreaker/TypeDefs/OrType.html#method-c-new","(types=[],*args)",""],["new","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-c-new","(*args)",""],["new","RubyBreaker::TypeDefs::VarLengthType","RubyBreaker/TypeDefs/VarLengthType.html#method-c-new","(type,*args)",""],["parse","RubyBreaker::Runtime::TypeSigParser","RubyBreaker/Runtime/TypeSigParser.html#method-c-parse","(str)","<p>This is a simple redirecting method for parsing type signature. The only\nspecial thing about this method …\n"],["pop","RubyBreaker::Context","RubyBreaker/Context.html#method-i-pop","()",""],["pp_methods","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-pp_methods","(pp, meth_type_map, opts={})","<p>Pretty prints type information for methods\n"],["pp_module","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-pp_module","(pp, mod, opts={})","<p>Pretty prints type information for the module/class\n"],["push","RubyBreaker::Context","RubyBreaker/Context.html#method-i-push","(pos)",""],["rename_meth","RubyBreaker::Runtime::MonitorInstaller","RubyBreaker/Runtime/MonitorInstaller.html#method-c-rename_meth","(recv, meth_name)","<p>renames the method in essence; this method also “installs” the module\nmonitor for the class …\n"],["respond_to?","RubyBreaker::Runtime::ObjectWrapper","RubyBreaker/Runtime/ObjectWrapper.html#method-i-respond_to-3F","(mname)","<p>Only behave differently if it’s looking for <code>WRAPPED_INDICATOR</code>\nmethod\n"],["route","RubyBreaker::Runtime::MonitorUtils","RubyBreaker/Runtime/MonitorUtils.html#method-c-route","(obj,meth_name,*args,&blk)","<p>This will do the actual routing work for a particular “monitored” method\ncall.\n<p>obj — is the object …\n"],["run","RubyBreaker","RubyBreaker.html#method-c-run","(*mods)","<p>This method runs RubyBreaker for a particular test case (class). This is a\nbit different from running …\n"],["set","RubyBreaker::Position","RubyBreaker/Position.html#method-c-set","(file,line,col)","<p>This class method is to set the current parsing position.\n"],["set_self","RubyBreaker::TypeDefs::SelfType","RubyBreaker/TypeDefs/SelfType.html#method-c-set_self","(mod)","<p>This is a setter method for class variable mod. NOTE: It is set every time\ntypesig() is called\n"],["set_to","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-set_to","(mode)",""],["subclass_rel?","RubyBreaker::RubyTypeUtils","RubyBreaker/RubyTypeUtils.html#method-c-subclass_rel-3F","(lhs, rhs)","<p>Checks if lhs is a subclass of rhs\n"],["submodule_rel?","RubyBreaker::RubyTypeUtils","RubyBreaker/RubyTypeUtils.html#method-c-submodule_rel-3F","(lhs,rhs)","<p>Checks if lhs is a sub-module of rhs\n"],["subtype_of?","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-subtype_of-3F","(rhs)","<p>This is a shorthand for calling Typing.subtype_rel?\n"],["subtype_rel?","RubyBreaker::Typing","RubyBreaker/Typing.html#method-c-subtype_rel-3F","(lhs, rhs)","<p>This method determines if one type is a subtype of another. This check is\nfor RubyBreaker defined types. …\n"],["to_s","RubyBreaker::ObjectPosition","RubyBreaker/ObjectPosition.html#method-i-to_s","()",""],["to_s","RubyBreaker::Position","RubyBreaker/Position.html#method-i-to_s","()",""],["turn_off","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-turn_off","()",""],["turn_on","RubyBreaker::Runtime::MonitorSwitch","RubyBreaker/Runtime/MonitorSwitch.html#method-i-turn_on","()",""],["underscore","RubyBreaker::Util","RubyBreaker/Util.html#method-c-underscore","(camel_cased_word)","<p>File activesupport/lib/active_support/inflector/methods.rb, line 48\n"],["unparse","RubyBreaker::Runtime::TypeSigUnparser","RubyBreaker/Runtime/TypeSigUnparser.html#method-c-unparse","(mod, opts={})","<p>This method unparses the type information in the specified module,\ndisplaying one or more type signatures …\n"],["unparse","RubyBreaker::TypeDefs::Type","RubyBreaker/TypeDefs/Type.html#method-i-unparse","(opts={})","<p>This method is a shorthand for calling TypeUnparser.unparse(t).\n"],["unparse","RubyBreaker::TypeUnparser","RubyBreaker/TypeUnparser.html#method-c-unparse","(t, opts={})","<p>This method unparses the RubyBreaker type according to the specified\noptions.\n<p>t — RubyBreaker type\n<p>opts — \n"],["verbose","RubyBreaker","RubyBreaker.html#method-c-verbose","(str, &blk)","<p>This method will display verbose message. It is not for debugging but to\ninform users of each stage in …\n"]]}}
|
|
@@ -160,15 +160,6 @@
|
|
|
160
160
|
</li>
|
|
161
161
|
<li class="module">
|
|
162
162
|
<a href="RubyBreaker/Util.html">RubyBreaker::Util</a>
|
|
163
|
-
</li>
|
|
164
|
-
<li class="module">
|
|
165
|
-
<a href="Test.html">Test</a>
|
|
166
|
-
</li>
|
|
167
|
-
<li class="module">
|
|
168
|
-
<a href="Test/Unit.html">Test::Unit</a>
|
|
169
|
-
</li>
|
|
170
|
-
<li class="class">
|
|
171
|
-
<a href="Test/Unit/TestCase.html">Test::Unit::TestCase</a>
|
|
172
163
|
</li>
|
|
173
164
|
<li class="module">
|
|
174
165
|
<a href="Rake.html">Rake</a>
|
|
@@ -177,7 +168,10 @@
|
|
|
177
168
|
<a href="Rake/RubyBreakerTestTask.html">Rake::RubyBreakerTestTask</a>
|
|
178
169
|
</li>
|
|
179
170
|
<li class="module">
|
|
180
|
-
<a href="
|
|
171
|
+
<a href="Test.html">Test</a>
|
|
172
|
+
</li>
|
|
173
|
+
<li class="module">
|
|
174
|
+
<a href="Test/Unit.html">Test::Unit</a>
|
|
181
175
|
</li>
|
|
182
176
|
<li class="class">
|
|
183
177
|
<a href="Object.html">Object</a>
|
|
@@ -188,6 +182,10 @@
|
|
|
188
182
|
<h2 id="methods">Methods</h2>
|
|
189
183
|
<ul>
|
|
190
184
|
|
|
185
|
+
<li class="method"><a href="RubyBreaker.html#method-c-break">::break — RubyBreaker</a>
|
|
186
|
+
|
|
187
|
+
<li class="method"><a href="RubyBreaker/Runtime.html#method-c-break">::break — RubyBreaker::Runtime</a>
|
|
188
|
+
|
|
191
189
|
<li class="method"><a href="RubyBreaker/Runtime.html#method-c-breakable">::breakable — RubyBreaker::Runtime</a>
|
|
192
190
|
|
|
193
191
|
<li class="method"><a href="RubyBreaker.html#method-c-breakable">::breakable — RubyBreaker</a>
|
|
@@ -226,7 +224,7 @@
|
|
|
226
224
|
|
|
227
225
|
<li class="method"><a href="RubyBreaker/Runtime/Inspector.html#method-c-inspect_meths">::inspect_meths — RubyBreaker::Runtime::Inspector</a>
|
|
228
226
|
|
|
229
|
-
<li class="method"><a href="RubyBreaker/Runtime/MonitorInstaller.html#method-c-
|
|
227
|
+
<li class="method"><a href="RubyBreaker/Runtime/MonitorInstaller.html#method-c-install_monitor">::install_monitor — RubyBreaker::Runtime::MonitorInstaller</a>
|
|
230
228
|
|
|
231
229
|
<li class="method"><a href="RubyBreaker/Runtime.html#method-c-instrument">::instrument — RubyBreaker::Runtime</a>
|
|
232
230
|
|
|
@@ -236,13 +234,7 @@
|
|
|
236
234
|
|
|
237
235
|
<li class="method"><a href="RubyBreaker.html#method-c-monitor">::monitor — RubyBreaker</a>
|
|
238
236
|
|
|
239
|
-
<li class="method"><a href="RubyBreaker/
|
|
240
|
-
|
|
241
|
-
<li class="method"><a href="RubyBreaker/Runtime/ObjectWrapper.html#method-c-new">::new — RubyBreaker::Runtime::ObjectWrapper</a>
|
|
242
|
-
|
|
243
|
-
<li class="method"><a href="RubyBreaker/Runtime/MethodInfo.html#method-c-new">::new — RubyBreaker::Runtime::MethodInfo</a>
|
|
244
|
-
|
|
245
|
-
<li class="method"><a href="RubyBreaker/Runtime/MonitorSwitch.html#method-c-new">::new — RubyBreaker::Runtime::MonitorSwitch</a>
|
|
237
|
+
<li class="method"><a href="RubyBreaker/Context.html#method-c-new">::new — RubyBreaker::Context</a>
|
|
246
238
|
|
|
247
239
|
<li class="method"><a href="RubyBreaker/Runtime/Monitor.html#method-c-new">::new — RubyBreaker::Runtime::Monitor</a>
|
|
248
240
|
|
|
@@ -252,23 +244,21 @@
|
|
|
252
244
|
|
|
253
245
|
<li class="method"><a href="RubyBreaker/Errors/InternalError.html#method-c-new">::new — RubyBreaker::Errors::InternalError</a>
|
|
254
246
|
|
|
255
|
-
<li class="method"><a href="
|
|
256
|
-
|
|
257
|
-
<li class="method"><a href="RubyBreaker/Context.html#method-c-new">::new — RubyBreaker::Context</a>
|
|
247
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/BlockType.html#method-c-new">::new — RubyBreaker::TypeDefs::BlockType</a>
|
|
258
248
|
|
|
259
|
-
<li class="method"><a href="RubyBreaker/
|
|
249
|
+
<li class="method"><a href="RubyBreaker/Runtime/MonitorSwitch.html#method-c-new">::new — RubyBreaker::Runtime::MonitorSwitch</a>
|
|
260
250
|
|
|
261
|
-
<li class="method"><a href="
|
|
251
|
+
<li class="method"><a href="RubyBreaker/Runtime/ObjectWrapper.html#method-c-new">::new — RubyBreaker::Runtime::ObjectWrapper</a>
|
|
262
252
|
|
|
263
|
-
<li class="method"><a href="
|
|
253
|
+
<li class="method"><a href="Rake/RubyBreakerTestTask.html#method-c-new">::new — Rake::RubyBreakerTestTask</a>
|
|
264
254
|
|
|
265
255
|
<li class="method"><a href="RubyBreaker/TypeDefs/Type.html#method-c-new">::new — RubyBreaker::TypeDefs::Type</a>
|
|
266
256
|
|
|
267
|
-
<li class="method"><a href="RubyBreaker/
|
|
257
|
+
<li class="method"><a href="RubyBreaker/Runtime/MethodInfo.html#method-c-new">::new — RubyBreaker::Runtime::MethodInfo</a>
|
|
268
258
|
|
|
269
|
-
<li class="method"><a href="RubyBreaker/TypeDefs/
|
|
259
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/MethodListType.html#method-c-new">::new — RubyBreaker::TypeDefs::MethodListType</a>
|
|
270
260
|
|
|
271
|
-
<li class="method"><a href="RubyBreaker/TypeDefs/
|
|
261
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/OrType.html#method-c-new">::new — RubyBreaker::TypeDefs::OrType</a>
|
|
272
262
|
|
|
273
263
|
<li class="method"><a href="RubyBreaker/TypeDefs/AnyType.html#method-c-new">::new — RubyBreaker::TypeDefs::AnyType</a>
|
|
274
264
|
|
|
@@ -276,15 +266,21 @@
|
|
|
276
266
|
|
|
277
267
|
<li class="method"><a href="RubyBreaker/TypeDefs/NominalType.html#method-c-new">::new — RubyBreaker::TypeDefs::NominalType</a>
|
|
278
268
|
|
|
279
|
-
<li class="method"><a href="RubyBreaker/TypeDefs/
|
|
269
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/VarLengthType.html#method-c-new">::new — RubyBreaker::TypeDefs::VarLengthType</a>
|
|
280
270
|
|
|
281
271
|
<li class="method"><a href="RubyBreaker/ObjectPosition.html#method-c-new">::new — RubyBreaker::ObjectPosition</a>
|
|
282
272
|
|
|
283
273
|
<li class="method"><a href="RubyBreaker/TypeDefs/SelfType.html#method-c-new">::new — RubyBreaker::TypeDefs::SelfType</a>
|
|
284
274
|
|
|
275
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/DuckType.html#method-c-new">::new — RubyBreaker::TypeDefs::DuckType</a>
|
|
276
|
+
|
|
277
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/OptionalType.html#method-c-new">::new — RubyBreaker::TypeDefs::OptionalType</a>
|
|
278
|
+
|
|
285
279
|
<li class="method"><a href="RubyBreaker/TypeDefs/FusionType.html#method-c-new">::new — RubyBreaker::TypeDefs::FusionType</a>
|
|
286
280
|
|
|
287
|
-
<li class="method"><a href="RubyBreaker/TypeDefs/
|
|
281
|
+
<li class="method"><a href="RubyBreaker/TypeDefs/MethodType.html#method-c-new">::new — RubyBreaker::TypeDefs::MethodType</a>
|
|
282
|
+
|
|
283
|
+
<li class="method"><a href="RubyBreaker/Position.html#method-c-new">::new — RubyBreaker::Position</a>
|
|
288
284
|
|
|
289
285
|
<li class="method"><a href="RubyBreaker/Runtime/TypeSigParser.html#method-c-parse">::parse — RubyBreaker::Runtime::TypeSigParser</a>
|
|
290
286
|
|
|
@@ -316,10 +312,6 @@
|
|
|
316
312
|
|
|
317
313
|
<li class="method"><a href="RubyBreaker.html#method-c-verbose">::verbose — RubyBreaker</a>
|
|
318
314
|
|
|
319
|
-
<li class="method"><a href="Object.html#method-i-22-23-7BRUBYBREAKER_RSPEC_PREFIX-7D_describe-22">#"#{RUBYBREAKER_RSPEC_PREFIX}_describe" — Object</a>
|
|
320
|
-
|
|
321
|
-
<li class="method"><a href="Test/Unit/TestCase.html#method-i-__rubybreaker_initialize">#__rubybreaker_initialize — Test::Unit::TestCase</a>
|
|
322
|
-
|
|
323
315
|
<li class="method"><a href="RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_obj">#__rubybreaker_obj — RubyBreaker::Runtime::ObjectWrapper</a>
|
|
324
316
|
|
|
325
317
|
<li class="method"><a href="RubyBreaker/Runtime/ObjectWrapper.html#method-i-__rubybreaker_type">#__rubybreaker_type — RubyBreaker::Runtime::ObjectWrapper</a>
|
|
@@ -334,7 +326,9 @@
|
|
|
334
326
|
|
|
335
327
|
<li class="method"><a href="RubyBreaker/Runtime/Pluggable.html#method-i-before_method_call">#before_method_call — RubyBreaker::Runtime::Pluggable</a>
|
|
336
328
|
|
|
337
|
-
<li class="method"><a href="
|
|
329
|
+
<li class="method"><a href="Rake/RubyBreakerTestTask.html#method-i-breakable">#breakable — Rake::RubyBreakerTestTask</a>
|
|
330
|
+
|
|
331
|
+
<li class="method"><a href="Rake/RubyBreakerTestTask.html#method-i-breakable-3D">#breakable= — Rake::RubyBreakerTestTask</a>
|
|
338
332
|
|
|
339
333
|
<li class="method"><a href="RubyBreaker/TypeDefs/Type.html#method-i-eql-3F">#eql? — RubyBreaker::TypeDefs::Type</a>
|
|
340
334
|
|
|
@@ -372,8 +366,6 @@
|
|
|
372
366
|
|
|
373
367
|
<li class="method"><a href="RubyBreaker/Runtime/MonitorSwitch.html#method-i-turn_on">#turn_on — RubyBreaker::Runtime::MonitorSwitch</a>
|
|
374
368
|
|
|
375
|
-
<li class="method"><a href="Kernel.html#method-i-typesig">#typesig — Kernel</a>
|
|
376
|
-
|
|
377
369
|
<li class="method"><a href="RubyBreaker/TypeDefs/Type.html#method-i-unparse">#unparse — RubyBreaker::TypeDefs::Type</a>
|
|
378
370
|
|
|
379
371
|
</ul>
|
data/webpage/rubybreaker.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
body {
|
|
2
2
|
background-color: #aa0000;
|
|
3
3
|
/* font-family: Verdana, Arial, "sans-serif"; */
|
|
4
|
-
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
|
4
|
+
/* font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif; */
|
|
5
|
+
|
|
5
6
|
width: 100%;
|
|
6
7
|
text-align: center;
|
|
7
8
|
padding:0px;
|
|
@@ -15,11 +16,11 @@ body {
|
|
|
15
16
|
hr {
|
|
16
17
|
border: 0;
|
|
17
18
|
height: 2px;
|
|
18
|
-
background-image: -webkit-linear-gradient(left, rgba(
|
|
19
|
-
background-image: -moz-linear-gradient(left, rgba(
|
|
20
|
-
background-image: -ms-linear-gradient(left, rgba(
|
|
21
|
-
background-image: -o-linear-gradient(left, rgba(
|
|
22
|
-
margin:
|
|
19
|
+
background-image: -webkit-linear-gradient(left, rgba(125,0,0,0), rgba(125,0,0,0.75), rgba(125,0,0,0));
|
|
20
|
+
background-image: -moz-linear-gradient(left, rgba(125,0,0,0), rgba(125,0,0,0.75), rgba(125,0,0,0));
|
|
21
|
+
background-image: -ms-linear-gradient(left, rgba(125,0,0,0), rgba(125,0,0,0.75), rgba(125,0,0,0));
|
|
22
|
+
background-image: -o-linear-gradient(left, rgba(125,0,0,0), rgba(125,0,0,0.75), rgba(125,0,0,0));
|
|
23
|
+
margin: 20px 0px 20px 0px;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
h1,
|
|
@@ -33,6 +34,7 @@ h4 {
|
|
|
33
34
|
code {
|
|
34
35
|
/* color: #5c5c5c; */
|
|
35
36
|
font-family: "Lucida Console", "Courier New", Monospace;
|
|
37
|
+
font-size: smaller;
|
|
36
38
|
font-weight: bold;
|
|
37
39
|
}
|
|
38
40
|
|
data/webpage/topics.html
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>RubyBreaker</title>
|
|
4
|
+
<LINK REL=StyleSheet HREF="rubybreaker.css" TYPE="text/css">
|
|
5
|
+
<script type="text/javascript" src="generated_toc.js"> </script>
|
|
6
|
+
</head>
|
|
7
|
+
<body onLoad="createTOC()">
|
|
8
|
+
<center>
|
|
9
|
+
<div id="content">
|
|
10
|
+
<div id="logo">
|
|
11
|
+
<img src="images/title.png" border="0">
|
|
12
|
+
</div>
|
|
13
|
+
<center>
|
|
14
|
+
<a href="index.html">Introduction</a> |
|
|
15
|
+
<a href="tutorial.html">Tutorial</a> |
|
|
16
|
+
<a href="topics.html">Advanced Topics</a> |
|
|
17
|
+
<a href="about.html">About</a>
|
|
18
|
+
</center>
|
|
19
|
+
<hr />
|
|
20
|
+
<!--<div id="generated-toc"></div>-->
|
|
21
|
+
<h1>Advanced Topics</h1>
|
|
22
|
+
|
|
23
|
+
<h2>RubyBreaker Type System</h2>
|
|
24
|
+
|
|
25
|
+
<p>RubyBreaker comes with its own type system to auto-document the type
|
|
26
|
+
information. Each method in a "breakable" module is dynamically instrumented
|
|
27
|
+
to be monitored during runtime. This monitoring code observes the types of
|
|
28
|
+
the arguments, block, and return value of each method. Once type information
|
|
29
|
+
for a method is gathered, RubyBreaker will compare it to the information
|
|
30
|
+
gathered so far for the method. If these two method types are
|
|
31
|
+
"compatiable", RubyBreaker will choose more general type from the two.</p>
|
|
32
|
+
|
|
33
|
+
<p>If two method types are not "compatible", RubyBreaker will "promote" the
|
|
34
|
+
method type to a method list type to accommodate more than one
|
|
35
|
+
"incompatible" types. Let's first understand what RubyBreaker considers two
|
|
36
|
+
types as "compatible".</p>
|
|
37
|
+
|
|
38
|
+
<h3>Subtyping and Subclassing</h3>
|
|
39
|
+
|
|
40
|
+
<p>RubyBreaker uses <em>subtyping</em> to determine two "compatible" method types,
|
|
41
|
+
which holds true if one is subtype or supertype of another. It chooses
|
|
42
|
+
the supertype of the two for the method because the objective is to find (1)
|
|
43
|
+
the most general type of the two and (2) the least general type that can
|
|
44
|
+
handle both. Note that, if the objective (2) is not required, we can
|
|
45
|
+
always use the most general method type:</p>
|
|
46
|
+
|
|
47
|
+
<pre><code>(?*) -> basic_object
|
|
48
|
+
</code></pre>
|
|
49
|
+
|
|
50
|
+
<p>A method of this type takes any number of any objects and returns a
|
|
51
|
+
<code>BasicObject</code>. But this is <em>too</em> general to use for type documetation.
|
|
52
|
+
Instead, we want to find the most specific general type possible (and
|
|
53
|
+
therefore, the least upper bound of the types observed for the method).</p>
|
|
54
|
+
|
|
55
|
+
<p>For simplicity (and practicality), RubyBreaker uses <em>subclassing</em> to
|
|
56
|
+
determine subtyping for nominal types. For instance, <code>Fixnum</code> is considered
|
|
57
|
+
subtype of <code>Numeric</code> because the former is subclass of the latter. However,
|
|
58
|
+
keep in mind this is not necessarily true in the true subtyping theory
|
|
59
|
+
because some methods in the former override the counterparts in the latter,
|
|
60
|
+
resulting in different types that no longer hold the subtyping relationship.</p>
|
|
61
|
+
|
|
62
|
+
<p>If a method has some type information either from the manual documentation
|
|
63
|
+
or from the current documentation process, this information will be used
|
|
64
|
+
in addition to subclassing. For example, consider method types
|
|
65
|
+
<code>foo(class1[to_s]) -> string</code> and <code>foo(class2[to_s]) -> string</code>. Let's also
|
|
66
|
+
assume that classes <code>Class1</code> and <code>Class2</code> are being auto-documented. The
|
|
67
|
+
method <code>foo</code> will have the type <code>foo(class1[to_s])</code> if <code>Class1#to_s</code> is a
|
|
68
|
+
subtype of <code>Class2#to_s</code>. (The direction is not mistaken, it is due to the
|
|
69
|
+
contra-variant property of a method argument.) If these classes are neither
|
|
70
|
+
being auto-documented nor manaully documented, this holds only if <code>Class1</code>
|
|
71
|
+
is subclass of <code>Class2</code>.</p>
|
|
72
|
+
|
|
73
|
+
<h2>Writing a Custom Type System</h2>
|
|
74
|
+
|
|
75
|
+
<p><em>Coming soon</em></p>
|
|
76
|
+
<hr />
|
|
77
|
+
<center style="font-size:smaller; padding:0px;">
|
|
78
|
+
Copyright (C) 2012 Jong-hoon (David) An. All Rights Reserved.<br />
|
|
79
|
+
Contact David An at rockalizer at gmail<br />
|
|
80
|
+
<a href="http://rockalizer.com">rockalizer.com</a>
|
|
81
|
+
</center>
|
|
82
|
+
</div>
|
|
83
|
+
</center>
|
|
84
|
+
</body>
|
|
85
|
+
</html>
|