rubybreaker 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|