diff --git a/.gitignore b/.gitignore index d3318570b..c57cca73e 100644 --- a/.gitignore +++ b/.gitignore @@ -20,5 +20,23 @@ bin bundle -source/documentation/**/**/css -source/documentation/**/**/js +source/documentation/2.14/**/css +source/documentation/2.14/**/js +source/documentation/2.99/**/css +source/documentation/2.99/**/js +source/documentation/3.0/**/css +source/documentation/3.0/**/js +source/documentation/3.1/**/css +source/documentation/3.1/**/js +source/documentation/3.2/**/css +source/documentation/3.2/**/js +source/documentation/3.3/**/css +source/documentation/3.3/**/js +source/documentation/3.4/**/css +source/documentation/3.4/**/js +source/documentation/3.5/**/css +source/documentation/3.5/**/js +source/documentation/3.6/**/css +source/documentation/3.6/**/js +source/documentation/3.7/**/css +source/documentation/3.7/**/js diff --git a/source/documentation/3.8/rspec-core/RSpec.html b/source/documentation/3.8/rspec-core/RSpec.html index 8ae4447b1..fc10d358e 100644 --- a/source/documentation/3.8/rspec-core/RSpec.html +++ b/source/documentation/3.8/rspec-core/RSpec.html @@ -5,13 +5,13 @@ Module: RSpec - — Documentation by YARD 0.9.15 + — Documentation by YARD 0.9.16 - + - + - + - + @@ -709,9 +709,9 @@

- + - + @@ -144,9 +144,9 @@

- + - + @@ -2603,7 +2603,7 @@

@backtrace_formatter = BacktraceFormatter.new @default_path = 'spec' - @project_source_dirs = %w[ spec lib app ] + @project_source_dirs = %w[ spec lib app ] @deprecation_stream = $stderr @output_stream = $stdout @reporter = nil @@ -8694,9 +8694,9 @@

- + - + @@ -591,9 +591,9 @@

- + - + @@ -307,9 +307,9 @@

- + - + @@ -1934,9 +1934,9 @@

- + - + @@ -1074,9 +1074,9 @@

- + - + @@ -527,9 +527,9 @@

- + - + @@ -4795,9 +4795,9 @@

- + - + @@ -336,9 +336,9 @@

- + - + @@ -658,9 +658,9 @@

- + - + @@ -510,9 +510,9 @@

- + - + @@ -362,9 +362,9 @@

- + - + @@ -297,9 +297,9 @@

- + - + @@ -593,9 +593,9 @@

- + - + @@ -654,9 +654,9 @@

- + - + @@ -578,9 +578,9 @@

- + - + @@ -300,9 +300,9 @@

- + - + @@ -1518,9 +1518,9 @@

- + - + @@ -1194,9 +1194,9 @@

- + - + @@ -572,9 +572,9 @@

- + - + @@ -680,9 +680,9 @@

- + - + @@ -341,9 +341,9 @@

- + - + @@ -108,9 +108,9 @@

Overview

- + - + @@ -937,9 +937,9 @@

- + - + @@ -115,9 +115,9 @@

Overview

- + - + @@ -241,9 +241,9 @@

- + - + @@ -559,9 +559,9 @@

- + - + @@ -236,9 +236,9 @@

- + - + @@ -883,9 +883,9 @@

- + - + @@ -954,9 +954,9 @@

- + - + @@ -231,9 +231,9 @@

- + - + @@ -219,9 +219,9 @@

- + - + @@ -121,9 +121,9 @@

Overview

- + - + @@ -155,9 +155,9 @@

Methods inherited from - Generated on Sat Aug 4 13:01:28 2018 by + Generated on Fri Sep 14 00:01:57 2018 by yard - 0.9.15 (ruby-2.4.2). + 0.9.16 (ruby-2.5.1). - + - + @@ -155,9 +155,9 @@

Methods inherited from - Generated on Sat Aug 4 13:01:28 2018 by + Generated on Fri Sep 14 00:01:57 2018 by yard - 0.9.15 (ruby-2.4.2). + 0.9.16 (ruby-2.5.1). - + - + @@ -904,9 +904,9 @@

- + - + @@ -506,9 +506,9 @@

- + - + @@ -349,9 +349,9 @@

- + - + @@ -306,9 +306,9 @@

- + - + @@ -1501,9 +1501,9 @@

- + - + @@ -447,9 +447,9 @@

- + - + @@ -284,9 +284,9 @@

- + - + @@ -906,9 +906,9 @@

- + - + @@ -653,9 +653,9 @@

- + - + @@ -866,9 +866,9 @@

- + - + @@ -225,9 +225,9 @@

- + - + @@ -124,9 +124,9 @@

Overview

- + - + @@ -388,9 +388,9 @@

- + - + @@ -279,9 +279,9 @@

- + - + @@ -564,9 +564,9 @@

- + - + @@ -352,9 +352,9 @@

- + - + @@ -130,9 +130,9 @@

- + - + @@ -993,9 +993,9 @@

- + - + @@ -51,7 +51,7 @@
-

Documentation by YARD 0.9.15

+

Documentation by YARD 0.9.16

Alphabetic Index

@@ -602,9 +602,9 @@

Namespace Listing A-Z

+ - + Class List diff --git a/source/documentation/3.8/rspec-core/css/common.css b/source/documentation/3.8/rspec-core/css/common.css new file mode 100644 index 000000000..cf25c4523 --- /dev/null +++ b/source/documentation/3.8/rspec-core/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/source/documentation/3.8/rspec-core/css/full_list.css b/source/documentation/3.8/rspec-core/css/full_list.css new file mode 100644 index 000000000..fa3598242 --- /dev/null +++ b/source/documentation/3.8/rspec-core/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/source/documentation/3.8/rspec-core/css/style.css b/source/documentation/3.8/rspec-core/css/style.css new file mode 100644 index 000000000..0bf7e2c73 --- /dev/null +++ b/source/documentation/3.8/rspec-core/css/style.css @@ -0,0 +1,496 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
    */ +#filecontents li > p, .docstring li > p { margin: 0px; } +#filecontents ul, .docstring ul { padding-left: 20px; } +/* style for
    */ +#filecontents dl, .docstring dl { border: 1px solid #ccc; } +#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; } +#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; } +#filecontents dd > p, .docstring dd > p { margin: 0px; } + +.note { + color: #222; + margin: 20px 0; + padding: 10px; + border: 1px solid #eee; + border-radius: 3px; + display: block; +} +.docstring .note { + border-left-color: #ccc; + border-left-width: 5px; +} +.note.todo { background: #ffffc5; border-color: #ececaa; } +.note.returns_void { background: #efefef; } +.note.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.private { background: #ffffc5; border-color: #ececaa; } +.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; } +.summary_signature + .note.title { margin-left: 7px; } +h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; } +.note.title { background: #efefef; } +.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; } +.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.private { background: #d5d5d5; border-color: #c5c5c5; } +.note.title.not_defined_here { background: transparent; border: none; font-style: italic; } +.discussion .note { margin-top: 6px; } +.discussion .note:first-child { margin-top: 0; } + +h3.inherited { + font-style: italic; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + padding: 0; + margin: 0; + margin-top: 12px; + margin-bottom: 3px; + font-size: 13px; +} +p.inherited { + padding: 0; + margin: 0; + margin-left: 25px; +} + +.box_info dl { + margin: 0; + border: 0; + width: 100%; + font-size: 1em; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} +.box_info dl dt { + flex-shrink: 0; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + width: 100px; + text-align: right; + font-weight: bold; + border: 1px solid #aaa; + border-width: 1px 0px 0px 1px; + padding: 6px 0; + padding-right: 10px; +} +.box_info dl dd { + flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex: 1; + max-width: 420px; + padding: 6px 0; + padding-right: 20px; + border: 1px solid #aaa; + border-width: 1px 1px 0 0; + overflow: hidden; + position: relative; +} +.box_info dl:last-child > * { + border-bottom: 1px solid #aaa; +} +.box_info dl:nth-child(odd) > * { background: #eee; } +.box_info dl:nth-child(even) > * { background: #fff; } +.box_info dl > * { margin: 0; } + +ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; } +.index_inline_list { padding-left: 0; font-size: 1.1em; } + +.index_inline_list li { + list-style: none; + display: inline-block; + padding: 0 12px; + line-height: 30px; + margin-bottom: 5px; +} + +dl.constants { margin-left: 10px; } +dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } +dl.constants.compact dt { display: inline-block; font-weight: normal } +dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; } +dl.constants .docstring .note:first-child { margin-top: 5px; } + +.summary_desc { + margin-left: 32px; + display: block; + font-family: sans-serif; + font-size: 1.1em; + margin-top: 8px; + line-height: 1.5145em; + margin-bottom: 0.8em; +} +.summary_desc tt { font-size: 0.9em; } +dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; } +dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; } +dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; } +dl.constants .discussion *:first-child { margin-top: 0; } +dl.constants .discussion *:last-child { margin-bottom: 0; } + +.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; } +.method_details.first { border: 0; margin-top: 5px; } +.method_details.first h3.signature { margin-top: 1em; } +p.signature, h3.signature { + font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace; + padding: 6px 10px; margin-top: 1em; + background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px; +} +p.signature tt, +h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; } +p.signature .overload, +h3.signature .overload { display: block; } +p.signature .extras, +h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; } +p.signature .not_defined_here, +h3.signature .not_defined_here, +p.signature .aliases, +h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; } +p.signature .aliases .names, +h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; } + +.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; } +.tags .tag_title tt { color: initial; padding: initial; background: initial; } +.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; } +.tags ul li { margin-bottom: 3px; } +.tags ul .name { font-family: monospace; font-weight: bold; } +.tags ul .note { padding: 3px 6px; } +.tags { margin-bottom: 12px; } + +.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; } +.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; } +.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; } + +.tags .overload .overload_item { list-style: none; margin-bottom: 25px; } +.tags .overload .overload_item .signature { + padding: 2px 8px; + background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px; +} +.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; } +.tags .overload .docstring { margin-top: 15px; } + +.defines { display: none; } + +#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; } + +.showSource { font-size: 0.9em; } +.showSource a, .showSource a:visited { text-decoration: none; color: #666; } + +#content a, #content a:visited { text-decoration: none; color: #05a; } +#content a:hover { background: #ffffa5; } + +ul.summary { + list-style: none; + font-family: monospace; + font-size: 1em; + line-height: 1.5em; + padding-left: 0px; +} +ul.summary a, ul.summary a:visited { + text-decoration: none; font-size: 1.1em; +} +ul.summary li { margin-bottom: 5px; } +.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; } +.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; } +.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; } +ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;} +ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; } +#content .summary_signature:hover a, +#content .summary_signature:hover a:visited { + background: transparent; + color: #049; +} + +p.inherited a { font-family: monospace; font-size: 0.9em; } +p.inherited { word-spacing: 5px; font-size: 1.2em; } + +p.children { font-size: 1.2em; } +p.children a { font-size: 0.9em; } +p.children strong { font-size: 0.8em; } +p.children strong.modules { padding-left: 5px; } + +ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; } +ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; } +ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; } +ul.fullTree li:first-child { padding-top: 0; background: transparent; } +ul.fullTree li:last-child { padding-bottom: 0; } +.showAll ul.fullTree { display: block; } +.showAll .inheritName { display: none; } + +#search { position: absolute; right: 12px; top: 0px; z-index: 9000; } +#search a { + display: block; float: left; + padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a; + border: 1px solid #d8d8e5; + border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; + background: #F1F8FF; + box-shadow: -1px 1px 3px #ddd; +} +#search a:hover { background: #f5faff; color: #06b; fill: #06b; } +#search a.active { + background: #568; padding-bottom: 20px; color: #fff; fill: #fff; + border: 1px solid #457; + border-top-left-radius: 5px; border-top-right-radius: 5px; +} +#search a.inactive { color: #999; fill: #999; } +.inheritanceTree, .toggleDefines { + float: right; + border-left: 1px solid #aaa; + position: absolute; top: 0; right: 0; + height: 100%; + background: #f6f6f6; + padding: 5px; + min-width: 55px; + text-align: center; +} + +#menu { font-size: 1.3em; color: #bbb; } +#menu .title, #menu a { font-size: 0.7em; } +#menu .title a { font-size: 1em; } +#menu .title { color: #555; } +#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; } +#menu a:hover { color: #05a; } + +#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; } +#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; } +#footer a:hover { color: #05a; } + +#listing ul.alpha { font-size: 1.1em; } +#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; } +#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; } +#listing ul.alpha ul { margin: 0; padding-left: 15px; } +#listing ul small { color: #666; font-size: 0.7em; } + +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } + +#content ul.summary li.deprecated .summary_signature a, +#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; } + +#toc { + position: relative; + float: right; + overflow-x: auto; + right: -3px; + margin-left: 20px; + margin-bottom: 20px; + padding: 20px; padding-right: 30px; + max-width: 300px; + z-index: 5000; + background: #fefefe; + border: 1px solid #ddd; + box-shadow: -2px 2px 6px #bbb; +} +#toc .title { margin: 0; } +#toc ol { padding-left: 1.8em; } +#toc li { font-size: 1.1em; line-height: 1.7em; } +#toc > ol > li { font-size: 1.1em; font-weight: bold; } +#toc ol > ol { font-size: 0.9em; } +#toc ol ol > ol { padding-left: 2.3em; } +#toc ol + li { margin-top: 0.3em; } +#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; } +#toc.hidden:hover { background: #fafafa; } +#filecontents h1 + #toc.nofloat { margin-top: 0; } +@media (max-width: 560px) { + #toc { + margin-left: 0; + margin-top: 16px; + float: none; + max-width: none; + } +} + +/* syntax highlighting */ +.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; } +#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; } +#filecontents pre.code, .docstring pre.code { display: block; } +.source_code .lines { padding-right: 12px; color: #555; text-align: right; } +#filecontents pre.code, .docstring pre.code, +.tags pre.example { + padding: 9px 14px; + margin-top: 4px; + border: 1px solid #e1e1e8; + background: #f7f7f9; + border-radius: 4px; + font-size: 1em; + overflow-x: auto; + line-height: 1.2em; +} +pre.code { color: #000; tab-size: 2; } +pre.code .info.file { color: #555; } +pre.code .val { color: #036A07; } +pre.code .tstring_content, +pre.code .heredoc_beg, pre.code .heredoc_end, +pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep, +pre.code .words_beg, pre.code .words_end, pre.code .words_sep, +pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep, +pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep, +pre.code .tstring, pre.code .dstring { color: #036A07; } +pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s, +pre.code .rubyid_to_sym, pre.code .rubyid_to_f, +pre.code .dot + pre.code .id, +pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; } +pre.code .comment { color: #0066FF; } +pre.code .const, pre.code .constant { color: #585CF6; } +pre.code .label, +pre.code .symbol { color: #C5060B; } +pre.code .kw, +pre.code .rubyid_require, +pre.code .rubyid_extend, +pre.code .rubyid_include { color: #0000FF; } +pre.code .ivar { color: #318495; } +pre.code .gvar, +pre.code .rubyid_backref, +pre.code .rubyid_nth_ref { color: #6D79DE; } +pre.code .regexp, .dregexp { color: #036A07; } +pre.code a { border-bottom: 1px dotted #bbf; } +/* inline code */ +*:not(pre) > code { + padding: 1px 3px 1px 3px; + border: 1px solid #E1E1E8; + background: #F7F7F9; + border-radius: 4px; +} + +/* Color fix for links */ +#content .summary_desc pre.code .id > .object_link a, /* identifier */ +#content .docstring pre.code .id > .object_link a { color: #0085FF; } +#content .summary_desc pre.code .const > .object_link a, /* constant */ +#content .docstring pre.code .const > .object_link a { color: #585CF6; } diff --git a/source/documentation/3.8/rspec-core/file.Changelog.html b/source/documentation/3.8/rspec-core/file.Changelog.html index c25935cc8..20f6767c7 100644 --- a/source/documentation/3.8/rspec-core/file.Changelog.html +++ b/source/documentation/3.8/rspec-core/file.Changelog.html @@ -5,13 +5,13 @@ File: Changelog - — Documentation by YARD 0.9.15 + — Documentation by YARD 0.9.16 - + - + - + - + @@ -2713,9 +2713,9 @@

    2.0.0.beta.22 / 2010-09-12

    - + - + @@ -234,9 +234,9 @@

    Silencing filter announcements

    - + - + @@ -86,9 +86,9 @@ - + - + @@ -72,7 +72,7 @@

    Install

    Want to run against the master branch? You'll need to include the dependent RSpec repos as well. Add the following to your Gemfile:

    -
    %w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
    +
    %w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
       gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
     end
     
    @@ -433,9 +433,9 @@

    Also see

    + - + File List diff --git a/source/documentation/3.8/rspec-core/frames.html b/source/documentation/3.8/rspec-core/frames.html index 6b43491ba..b57c778ad 100644 --- a/source/documentation/3.8/rspec-core/frames.html +++ b/source/documentation/3.8/rspec-core/frames.html @@ -2,7 +2,7 @@ - Documentation by YARD 0.9.15 + Documentation by YARD 0.9.16 - + - + @@ -72,7 +72,7 @@

    Install

    Want to run against the master branch? You'll need to include the dependent RSpec repos as well. Add the following to your Gemfile:

    -
    %w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
    +
    %w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
       gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
     end
     
    @@ -433,9 +433,9 @@

    Also see

    + - + Method List @@ -158,16 +158,16 @@

    Method List

  • - #append_after - RSpec::Core::Configuration + #append_after + RSpec::Core::Hooks
  • - #append_after - RSpec::Core::Hooks + #append_after + RSpec::Core::Configuration
  • @@ -1014,16 +1014,16 @@

    Method List

  • - expose_globally! - RSpec::Core::SharedExampleGroup::TopLevelDSL + expose_globally! + RSpec::Core::DSL
  • - expose_globally! - RSpec::Core::DSL + expose_globally! + RSpec::Core::SharedExampleGroup::TopLevelDSL
  • @@ -1278,7 +1278,7 @@

    Method List

  • - formatters + #formatters RSpec::Core::Formatters::Loader
  • @@ -1286,7 +1286,7 @@

    Method List

  • - #formatters + formatters RSpec::Core::Formatters::Loader
  • @@ -2374,32 +2374,32 @@

    Method List

  • - run - RSpec::Core::Runner + run + RSpec::Core::ExampleGroup
  • - run - RSpec::Core::ExampleGroup + #run + RSpec::Core::Runner
  • - #run - RSpec::Core::Runner + #run + RSpec::Core::Example
  • - #run - RSpec::Core::Example + run + RSpec::Core::Runner
  • diff --git a/source/documentation/3.8/rspec-core/top-level-namespace.html b/source/documentation/3.8/rspec-core/top-level-namespace.html index 3e3624cb8..d10f2182d 100644 --- a/source/documentation/3.8/rspec-core/top-level-namespace.html +++ b/source/documentation/3.8/rspec-core/top-level-namespace.html @@ -5,13 +5,13 @@ Top Level Namespace - — Documentation by YARD 0.9.15 + — Documentation by YARD 0.9.16 - + - + - + - + @@ -99,9 +99,9 @@

    Defined Under Namespace

    - + - + @@ -381,9 +381,9 @@

    - + - + @@ -117,9 +117,9 @@

    Overview

    - + - + @@ -378,9 +378,9 @@

    - + - + @@ -1294,9 +1294,9 @@

    - Generated on Sat Aug 4 13:01:36 2018 by + Generated on Fri Sep 14 00:02:04 2018 by yard - 0.9.15 (ruby-2.4.2). + 0.9.16 (ruby-2.5.1). - + - + @@ -137,9 +137,9 @@

    Direct Known Subclasses

    - + - + @@ -359,9 +359,9 @@

    - + - + @@ -398,9 +398,9 @@

    - + - + @@ -798,9 +798,9 @@

    - + - + @@ -827,9 +827,9 @@

    - + - + @@ -4089,9 +4089,9 @@

    - + - + @@ -535,9 +535,9 @@

    - + - + @@ -122,9 +122,9 @@

    Overview

    - + - + @@ -436,9 +436,9 @@

    - + - + @@ -791,9 +791,9 @@

    - + - + @@ -294,9 +294,9 @@

    - + - + @@ -419,9 +419,9 @@

    - + - + @@ -178,9 +178,9 @@

    Constructor Details

    - + - + @@ -273,9 +273,9 @@

    - + - + @@ -666,9 +666,9 @@

    - + - + @@ -599,9 +599,9 @@

    - + - + @@ -346,9 +346,9 @@

    - + - + @@ -346,9 +346,9 @@

    - + - + @@ -665,9 +665,9 @@

    - + - + @@ -346,9 +346,9 @@

    - + - + @@ -630,9 +630,9 @@

    - + - + @@ -829,9 +829,9 @@

    - + - + @@ -339,9 +339,9 @@

    - + - + @@ -261,9 +261,9 @@

    - + - + @@ -339,9 +339,9 @@

    - + - + @@ -673,9 +673,9 @@

    - + - + @@ -293,9 +293,9 @@

    - + - + @@ -323,9 +323,9 @@

    - + - + @@ -281,9 +281,9 @@

    - + - + @@ -292,9 +292,9 @@

    - + - + @@ -439,9 +439,9 @@

    - + - + @@ -422,9 +422,9 @@

    - + - + @@ -191,9 +191,9 @@

    Constructor Details

    - + - + @@ -502,9 +502,9 @@

    - + - + @@ -424,9 +424,9 @@

    - + - + @@ -446,9 +446,9 @@

    - + - + @@ -587,9 +587,9 @@

    - + - + @@ -573,9 +573,9 @@

    - + - + @@ -491,9 +491,9 @@

    - + - + @@ -749,9 +749,9 @@

    - + - + @@ -815,9 +815,9 @@

    - + - + @@ -512,9 +512,9 @@

    - + - + @@ -294,9 +294,9 @@

    - + - + @@ -1091,9 +1091,9 @@

    - + - + @@ -642,9 +642,9 @@

    - + - + @@ -382,9 +382,9 @@

    - + - + @@ -894,9 +894,9 @@

    - + - + @@ -415,9 +415,9 @@

    - + - + @@ -263,9 +263,9 @@

    - + - + @@ -442,9 +442,9 @@

    - + - + @@ -191,9 +191,9 @@

    Constructor Details

    - + - + @@ -707,9 +707,9 @@

    - + - + @@ -866,9 +866,9 @@

    - + - + @@ -335,9 +335,9 @@

    - + - + @@ -251,9 +251,9 @@

    - + - + @@ -173,9 +173,9 @@

    Constructor Details

    - + - + @@ -845,9 +845,9 @@

    - + - + @@ -278,9 +278,9 @@

    - + - + @@ -597,9 +597,9 @@

    - + - + @@ -445,9 +445,9 @@

    - + - + @@ -1034,9 +1034,9 @@

    - + - + @@ -392,9 +392,9 @@

    - + - + @@ -1055,9 +1055,9 @@

    - + - + @@ -291,9 +291,9 @@

    - + - + @@ -563,9 +563,9 @@

    - + - + @@ -347,9 +347,9 @@

    - + - + @@ -1058,9 +1058,9 @@

    - + - + @@ -51,7 +51,7 @@
    -

    Documentation by YARD 0.9.15

    +

    Documentation by YARD 0.9.16

    Alphabetic Index

    @@ -705,9 +705,9 @@

    Namespace Listing A-Z

    + - + Class List diff --git a/source/documentation/3.8/rspec-expectations/css/common.css b/source/documentation/3.8/rspec-expectations/css/common.css new file mode 100644 index 000000000..cf25c4523 --- /dev/null +++ b/source/documentation/3.8/rspec-expectations/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/source/documentation/3.8/rspec-expectations/css/full_list.css b/source/documentation/3.8/rspec-expectations/css/full_list.css new file mode 100644 index 000000000..fa3598242 --- /dev/null +++ b/source/documentation/3.8/rspec-expectations/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/source/documentation/3.8/rspec-expectations/css/style.css b/source/documentation/3.8/rspec-expectations/css/style.css new file mode 100644 index 000000000..0bf7e2c73 --- /dev/null +++ b/source/documentation/3.8/rspec-expectations/css/style.css @@ -0,0 +1,496 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for

*/ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
*/ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
    */ +#filecontents li > p, .docstring li > p { margin: 0px; } +#filecontents ul, .docstring ul { padding-left: 20px; } +/* style for
    */ +#filecontents dl, .docstring dl { border: 1px solid #ccc; } +#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; } +#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; } +#filecontents dd > p, .docstring dd > p { margin: 0px; } + +.note { + color: #222; + margin: 20px 0; + padding: 10px; + border: 1px solid #eee; + border-radius: 3px; + display: block; +} +.docstring .note { + border-left-color: #ccc; + border-left-width: 5px; +} +.note.todo { background: #ffffc5; border-color: #ececaa; } +.note.returns_void { background: #efefef; } +.note.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.private { background: #ffffc5; border-color: #ececaa; } +.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; } +.summary_signature + .note.title { margin-left: 7px; } +h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; } +.note.title { background: #efefef; } +.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; } +.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.private { background: #d5d5d5; border-color: #c5c5c5; } +.note.title.not_defined_here { background: transparent; border: none; font-style: italic; } +.discussion .note { margin-top: 6px; } +.discussion .note:first-child { margin-top: 0; } + +h3.inherited { + font-style: italic; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + padding: 0; + margin: 0; + margin-top: 12px; + margin-bottom: 3px; + font-size: 13px; +} +p.inherited { + padding: 0; + margin: 0; + margin-left: 25px; +} + +.box_info dl { + margin: 0; + border: 0; + width: 100%; + font-size: 1em; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} +.box_info dl dt { + flex-shrink: 0; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + width: 100px; + text-align: right; + font-weight: bold; + border: 1px solid #aaa; + border-width: 1px 0px 0px 1px; + padding: 6px 0; + padding-right: 10px; +} +.box_info dl dd { + flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex: 1; + max-width: 420px; + padding: 6px 0; + padding-right: 20px; + border: 1px solid #aaa; + border-width: 1px 1px 0 0; + overflow: hidden; + position: relative; +} +.box_info dl:last-child > * { + border-bottom: 1px solid #aaa; +} +.box_info dl:nth-child(odd) > * { background: #eee; } +.box_info dl:nth-child(even) > * { background: #fff; } +.box_info dl > * { margin: 0; } + +ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; } +.index_inline_list { padding-left: 0; font-size: 1.1em; } + +.index_inline_list li { + list-style: none; + display: inline-block; + padding: 0 12px; + line-height: 30px; + margin-bottom: 5px; +} + +dl.constants { margin-left: 10px; } +dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } +dl.constants.compact dt { display: inline-block; font-weight: normal } +dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; } +dl.constants .docstring .note:first-child { margin-top: 5px; } + +.summary_desc { + margin-left: 32px; + display: block; + font-family: sans-serif; + font-size: 1.1em; + margin-top: 8px; + line-height: 1.5145em; + margin-bottom: 0.8em; +} +.summary_desc tt { font-size: 0.9em; } +dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; } +dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; } +dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; } +dl.constants .discussion *:first-child { margin-top: 0; } +dl.constants .discussion *:last-child { margin-bottom: 0; } + +.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; } +.method_details.first { border: 0; margin-top: 5px; } +.method_details.first h3.signature { margin-top: 1em; } +p.signature, h3.signature { + font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace; + padding: 6px 10px; margin-top: 1em; + background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px; +} +p.signature tt, +h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; } +p.signature .overload, +h3.signature .overload { display: block; } +p.signature .extras, +h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; } +p.signature .not_defined_here, +h3.signature .not_defined_here, +p.signature .aliases, +h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; } +p.signature .aliases .names, +h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; } + +.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; } +.tags .tag_title tt { color: initial; padding: initial; background: initial; } +.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; } +.tags ul li { margin-bottom: 3px; } +.tags ul .name { font-family: monospace; font-weight: bold; } +.tags ul .note { padding: 3px 6px; } +.tags { margin-bottom: 12px; } + +.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; } +.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; } +.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; } + +.tags .overload .overload_item { list-style: none; margin-bottom: 25px; } +.tags .overload .overload_item .signature { + padding: 2px 8px; + background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px; +} +.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; } +.tags .overload .docstring { margin-top: 15px; } + +.defines { display: none; } + +#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; } + +.showSource { font-size: 0.9em; } +.showSource a, .showSource a:visited { text-decoration: none; color: #666; } + +#content a, #content a:visited { text-decoration: none; color: #05a; } +#content a:hover { background: #ffffa5; } + +ul.summary { + list-style: none; + font-family: monospace; + font-size: 1em; + line-height: 1.5em; + padding-left: 0px; +} +ul.summary a, ul.summary a:visited { + text-decoration: none; font-size: 1.1em; +} +ul.summary li { margin-bottom: 5px; } +.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; } +.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; } +.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; } +ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;} +ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; } +#content .summary_signature:hover a, +#content .summary_signature:hover a:visited { + background: transparent; + color: #049; +} + +p.inherited a { font-family: monospace; font-size: 0.9em; } +p.inherited { word-spacing: 5px; font-size: 1.2em; } + +p.children { font-size: 1.2em; } +p.children a { font-size: 0.9em; } +p.children strong { font-size: 0.8em; } +p.children strong.modules { padding-left: 5px; } + +ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; } +ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; } +ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; } +ul.fullTree li:first-child { padding-top: 0; background: transparent; } +ul.fullTree li:last-child { padding-bottom: 0; } +.showAll ul.fullTree { display: block; } +.showAll .inheritName { display: none; } + +#search { position: absolute; right: 12px; top: 0px; z-index: 9000; } +#search a { + display: block; float: left; + padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a; + border: 1px solid #d8d8e5; + border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; + background: #F1F8FF; + box-shadow: -1px 1px 3px #ddd; +} +#search a:hover { background: #f5faff; color: #06b; fill: #06b; } +#search a.active { + background: #568; padding-bottom: 20px; color: #fff; fill: #fff; + border: 1px solid #457; + border-top-left-radius: 5px; border-top-right-radius: 5px; +} +#search a.inactive { color: #999; fill: #999; } +.inheritanceTree, .toggleDefines { + float: right; + border-left: 1px solid #aaa; + position: absolute; top: 0; right: 0; + height: 100%; + background: #f6f6f6; + padding: 5px; + min-width: 55px; + text-align: center; +} + +#menu { font-size: 1.3em; color: #bbb; } +#menu .title, #menu a { font-size: 0.7em; } +#menu .title a { font-size: 1em; } +#menu .title { color: #555; } +#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; } +#menu a:hover { color: #05a; } + +#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; } +#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; } +#footer a:hover { color: #05a; } + +#listing ul.alpha { font-size: 1.1em; } +#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; } +#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; } +#listing ul.alpha ul { margin: 0; padding-left: 15px; } +#listing ul small { color: #666; font-size: 0.7em; } + +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } + +#content ul.summary li.deprecated .summary_signature a, +#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; } + +#toc { + position: relative; + float: right; + overflow-x: auto; + right: -3px; + margin-left: 20px; + margin-bottom: 20px; + padding: 20px; padding-right: 30px; + max-width: 300px; + z-index: 5000; + background: #fefefe; + border: 1px solid #ddd; + box-shadow: -2px 2px 6px #bbb; +} +#toc .title { margin: 0; } +#toc ol { padding-left: 1.8em; } +#toc li { font-size: 1.1em; line-height: 1.7em; } +#toc > ol > li { font-size: 1.1em; font-weight: bold; } +#toc ol > ol { font-size: 0.9em; } +#toc ol ol > ol { padding-left: 2.3em; } +#toc ol + li { margin-top: 0.3em; } +#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; } +#toc.hidden:hover { background: #fafafa; } +#filecontents h1 + #toc.nofloat { margin-top: 0; } +@media (max-width: 560px) { + #toc { + margin-left: 0; + margin-top: 16px; + float: none; + max-width: none; + } +} + +/* syntax highlighting */ +.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; } +#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; } +#filecontents pre.code, .docstring pre.code { display: block; } +.source_code .lines { padding-right: 12px; color: #555; text-align: right; } +#filecontents pre.code, .docstring pre.code, +.tags pre.example { + padding: 9px 14px; + margin-top: 4px; + border: 1px solid #e1e1e8; + background: #f7f7f9; + border-radius: 4px; + font-size: 1em; + overflow-x: auto; + line-height: 1.2em; +} +pre.code { color: #000; tab-size: 2; } +pre.code .info.file { color: #555; } +pre.code .val { color: #036A07; } +pre.code .tstring_content, +pre.code .heredoc_beg, pre.code .heredoc_end, +pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep, +pre.code .words_beg, pre.code .words_end, pre.code .words_sep, +pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep, +pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep, +pre.code .tstring, pre.code .dstring { color: #036A07; } +pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s, +pre.code .rubyid_to_sym, pre.code .rubyid_to_f, +pre.code .dot + pre.code .id, +pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; } +pre.code .comment { color: #0066FF; } +pre.code .const, pre.code .constant { color: #585CF6; } +pre.code .label, +pre.code .symbol { color: #C5060B; } +pre.code .kw, +pre.code .rubyid_require, +pre.code .rubyid_extend, +pre.code .rubyid_include { color: #0000FF; } +pre.code .ivar { color: #318495; } +pre.code .gvar, +pre.code .rubyid_backref, +pre.code .rubyid_nth_ref { color: #6D79DE; } +pre.code .regexp, .dregexp { color: #036A07; } +pre.code a { border-bottom: 1px dotted #bbf; } +/* inline code */ +*:not(pre) > code { + padding: 1px 3px 1px 3px; + border: 1px solid #E1E1E8; + background: #F7F7F9; + border-radius: 4px; +} + +/* Color fix for links */ +#content .summary_desc pre.code .id > .object_link a, /* identifier */ +#content .docstring pre.code .id > .object_link a { color: #0085FF; } +#content .summary_desc pre.code .const > .object_link a, /* constant */ +#content .docstring pre.code .const > .object_link a { color: #585CF6; } diff --git a/source/documentation/3.8/rspec-mocks/file.Changelog.html b/source/documentation/3.8/rspec-mocks/file.Changelog.html index bfd014a64..379a5d711 100644 --- a/source/documentation/3.8/rspec-mocks/file.Changelog.html +++ b/source/documentation/3.8/rspec-mocks/file.Changelog.html @@ -5,13 +5,13 @@ File: Changelog - — Documentation by YARD 0.9.15 + — Documentation by YARD 0.9.16 - + - + - + - + @@ -56,1640 +56,1360 @@
    -
    -

    3.8.0 / 2018-08-04

    +

    3.8.0 / 2018-08-04

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Issue error when encountering invalid “counted” negative message -expectations. (Sergiy Yarinovskiy, #1212)

      -
    • -

      Ensure allow_any_instance_of and -expect_any_instance_of can be temporarily supressed. (Jon -Rowe, #1228)

      -
    • -

      Ensure expect_any_instance_of(double).to_not -have_received(:some_method) fails gracefully (as its not supported) -rather than issuing a NoMethodError. (Maxim Krizhanovsky, -#1231)

      -
    - -

    3.7.0 / 2017-10-17

    - -

    Full -Changelog

    + +
      +
    • Issue error when encountering invalid "counted" negative message expectations. +(Sergiy Yarinovskiy, #1212)
    • +
    • Ensure allow_any_instance_of and expect_any_instance_of can be temporarily +supressed. (Jon Rowe, #1228)
    • +
    • Ensure expect_any_instance_of(double).to_not have_received(:some_method) +fails gracefully (as its not supported) rather than issuing a NoMethodError. +(Maxim Krizhanovsky, #1231)
    • +
    + +

    3.7.0 / 2017-10-17

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Improve compatibility with --enable-frozen-string-literal -option on Ruby 2.3+. (Pat Allan, #1165)

      -
    + +
      +
    • Improve compatibility with --enable-frozen-string-literal option +on Ruby 2.3+. (Pat Allan, #1165)
    • +

    Bug Fixes:

    -
    • -

      Fix hash_including and hash_excluding so that -they work against subclasses of Hash. (Aaron Rosenberg, -#1167)

      -
    -

    3.6.0 / 2017-05-04

    +
      +
    • Fix hash_including and hash_excluding so that they work against +subclasses of Hash. (Aaron Rosenberg, #1167)
    • +
    + +

    3.6.0 / 2017-05-04

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix “instance variable @color not initialized” warning when using -rspec-mocks without rspec-core. (Myron Marston, #1142)

      -
    • -

      Restore aliased module methods properly when stubbing on 1.8.7. (Samuel -Giddins, #1144)

      -
    • -

      Allow a message chain expectation to be constrained by argument(s). (Jon -Rowe, #1156)

      -
    - -

    3.6.0.beta2 / 2016-12-12

    - -

    Full -Changelog

    + +
      +
    • Fix "instance variable @color not initialized" warning when using +rspec-mocks without rspec-core. (Myron Marston, #1142)
    • +
    • Restore aliased module methods properly when stubbing on 1.8.7. +(Samuel Giddins, #1144)
    • +
    • Allow a message chain expectation to be constrained by argument(s). +(Jon Rowe, #1156)
    • +
    + +

    3.6.0.beta2 / 2016-12-12

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Add new without_partial_double_verification { } API that lets -you temporarily turn off partial double verification for an example. (Jon -Rowe, #1104)

      -
    -

    3.6.0.beta1 / 2016-10-09

    +
      +
    • Add new without_partial_double_verification { } API that lets you +temporarily turn off partial double verification for an example. +(Jon Rowe, #1104)
    • +
    + +

    3.6.0.beta1 / 2016-10-09

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Return the test double instance form #freeze (Alessandro -Berardi, #1109)

      -
    • -

      Allow the special logic for stubbing new to work when -<Class>.method has been redefined. (Proby, #1119)

      -
    -

    3.5.0 / 2016-07-01

    +
      +
    • Return the test double instance form #freeze (Alessandro Berardi, #1109)
    • +
    • Allow the special logic for stubbing new to work when <Class>.method has +been redefined. (Proby, #1119)
    • +
    -

    Full -Changelog

    +

    3.5.0 / 2016-07-01

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Provides a nice string representation of -RSpec::Mocks::MessageExpectation (Myron Marston, #1095)

      -
    -

    3.5.0.beta4 / 2016-06-05

    +
      +
    • Provides a nice string representation of +RSpec::Mocks::MessageExpectation (Myron Marston, #1095)
    • +
    + +

    3.5.0.beta4 / 2016-06-05

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements:

    -
    • -

      Add and_throw to any instance handling. (Tobias Bühlmann, -#1068)

      -
    -

    3.5.0.beta3 / 2016-04-02

    +
      +
    • Add and_throw to any instance handling. (Tobias Bühlmann, #1068)
    • +
    -

    Full -Changelog

    +

    3.5.0.beta3 / 2016-04-02

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Issue warning when attempting to use unsupported allow(...).to -receive(...).ordered. (Jon Rowe, #1000)

      -
    • -

      Add rspec/mocks/minitest_integration, to properly integrate -rspec-mocks with minitest. (Myron Marston, #1065)

      -
    -

    3.5.0.beta2 / 2016-03-10

    +
      +
    • Issue warning when attempting to use unsupported +allow(...).to receive(...).ordered. (Jon Rowe, #1000)
    • +
    • Add rspec/mocks/minitest_integration, to properly integrate rspec-mocks +with minitest. (Myron Marston, #1065)
    • +
    + +

    3.5.0.beta2 / 2016-03-10

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements:

    -
    • -

      Improve error message displayed when using and_wrap_original -on pure test doubles. (betesh, #1063)

      -
    + +
      +
    • Improve error message displayed when using and_wrap_original on pure test +doubles. (betesh, #1063)
    • +

    Bug Fixes:

    -
    • -

      Fix issue that prevented receive_message_chain(...).with(...) -working correctly on “any instance” mocks. (Jon Rowe, #1061)

      -
    -

    3.5.0.beta1 / 2016-02-06

    +
      +
    • Fix issue that prevented receive_message_chain(...).with(...) working +correctly on "any instance" mocks. (Jon Rowe, #1061)
    • +
    + +

    3.5.0.beta1 / 2016-02-06

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Allow any_instance_of(...).to receive(...) to use -and_yield multiple times. (Kilian Cirera Sant, #1054)

      -
    • -

      Allow matchers which inherit from rspec-mocks matchers to be -used for allow. (Andrew Kozin, #1056)

      -
    • -

      Prevent stubbing respond_to? on partial doubles from causing -infinite recursion. (Jon Rowe, #1013)

      -
    • -

      Prevent aliased methods from disapearing after being mocked with -any_instance (regression from #1043). (Joe Rafaniello, #1060)

      -
    - -

    3.4.1 / 2016-01-10

    - -

    Full -Changelog

    + +
      +
    • Allow any_instance_of(...).to receive(...) to use and_yield multiple +times. (Kilian Cirera Sant, #1054)
    • +
    • Allow matchers which inherit from rspec-mocks matchers to be used for +allow. (Andrew Kozin, #1056)
    • +
    • Prevent stubbing respond_to? on partial doubles from causing infinite +recursion. (Jon Rowe, #1013)
    • +
    • Prevent aliased methods from disapearing after being mocked with +any_instance (regression from #1043). (Joe Rafaniello, #1060)
    • +
    + +

    3.4.1 / 2016-01-10

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix any_instance to work properly on Ruby 2.3. (Joe -Rafaniello, #1043)

      -
    -

    3.4.0 / 2015-11-11

    +
      +
    • Fix any_instance to work properly on Ruby 2.3. (Joe Rafaniello, #1043)
    • +
    + +

    3.4.0 / 2015-11-11

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements:

    -
    • -

      Make expect(...).to have_received work without relying upon -rspec-expectations. (Myron Marston, #978)

      -
    • -

      Add option for failing tests when expectations are set on nil. -(Liz Rush, #983)

      -
    + +
      +
    • Make expect(...).to have_received work without relying upon +rspec-expectations. (Myron Marston, #978)
    • +
    • Add option for failing tests when expectations are set on nil. +(Liz Rush, #983)
    • +

    Bug Fixes:

    -
    • -

      Fix have_received { ... } so that any block passed when the -message was received is forwarded to the have_received block. -(Myron Marston, #1006)

      -
    • -

      Fix infinite loop in error generator when stubbing -respond_to?. (Alex Dowad, #1022)

      -
    • -

      Fix issue with using receive on subclasses (at a class level) -with 1.8.7. (Alex Dowad, #1026)

      -
    - -

    3.3.2 / 2015-07-15

    - -

    Full -Changelog

    + +
      +
    • Fix have_received { ... } so that any block passed when the message +was received is forwarded to the have_received block. (Myron Marston, #1006)
    • +
    • Fix infinite loop in error generator when stubbing respond_to?. +(Alex Dowad, #1022)
    • +
    • Fix issue with using receive on subclasses (at a class level) with 1.8.7. +(Alex Dowad, #1026)
    • +
    + +

    3.3.2 / 2015-07-15

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Prevent thread deadlock errors during proxy creation (e.g. when using -before_verifying_doubles callbacks). (Jon Rowe, #980, #979)

      -
    -

    3.3.1 / 2015-06-19

    +
      +
    • Prevent thread deadlock errors during proxy creation (e.g. when using +before_verifying_doubles callbacks). (Jon Rowe, #980, #979)
    • +
    -

    Full -Changelog

    +

    3.3.1 / 2015-06-19

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix bug in before_verifying_double callback logic that caused -it to be called once for each class in the ancestor list when mocking or -stubbing a class. Now it is only called for the mocked or stubbed class, -as you would expect. (Sam Phippen, #974)

      -
    -

    3.3.0 / 2015-06-12

    +
      +
    • Fix bug in before_verifying_double callback logic that caused it to be called +once for each class in the ancestor list when mocking or stubbing a class. Now +it is only called for the mocked or stubbed class, as you would expect. (Sam +Phippen, #974)
    • +
    + +

    3.3.0 / 2015-06-12

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements:

    -
    • -

      When stubbing new on MyClass or -class_double(MyClass), use the method signature from -MyClass#initialize to verify arguments. (Myron Marston, #886)

      -
    • -

      Use matcher descriptions when generating description of received arguments -for mock expectation failures. (Tim Wade, #891)

      -
    • -

      Avoid loading stringio unnecessarily. (Myron Marston, #894)

      -
    • -

      Verifying doubles failure messages now distinguish between class and -instance level methods. (Tim Wade, #896, #908)

      -
    • -

      Improve mock expectation failure messages so that it combines both number -of times and the received arguments in the output. (John Ceh, #918)

      -
    • -

      Improve how test doubles are represented in failure messages. (Siva -Gollapalli, Myron Marston, #932)

      -
    • -

      Rename -RSpec::Mocks::Configuration#when_declaring_verifying_double to -RSpec::Mocks::Configuration#before_verifying_doubles and -utilise when verifying partial doubles. (Jon Rowe, #940)

      -
    • -

      Use rspec-support's ObjectFormatter for improved -formatting of arguments in failure messages so that, for example, full -time precisions is displayed for time objects. (Gavin Miller, Myron -Marston, #955)

      -
    + +
      +
    • When stubbing new on MyClass or class_double(MyClass), use the +method signature from MyClass#initialize to verify arguments. +(Myron Marston, #886)
    • +
    • Use matcher descriptions when generating description of received arguments +for mock expectation failures. (Tim Wade, #891)
    • +
    • Avoid loading stringio unnecessarily. (Myron Marston, #894)
    • +
    • Verifying doubles failure messages now distinguish between class and instance +level methods. (Tim Wade, #896, #908)
    • +
    • Improve mock expectation failure messages so that it combines both +number of times and the received arguments in the output. (John Ceh, #918)
    • +
    • Improve how test doubles are represented in failure messages. +(Siva Gollapalli, Myron Marston, #932)
    • +
    • Rename RSpec::Mocks::Configuration#when_declaring_verifying_double to +RSpec::Mocks::Configuration#before_verifying_doubles and utilise when +verifying partial doubles. (Jon Rowe, #940)
    • +
    • Use rspec-support's ObjectFormatter for improved formatting of +arguments in failure messages so that, for example, full time +precisions is displayed for time objects. (Gavin Miller, Myron Marston, #955)
    • +

    Bug Fixes:

    -
    • -

      Ensure expectations that raise eagerly also raise during RSpec -verification. This means that if exceptions are caught inside test -execution the test will still fail. (Sam Phippen, #884)

      -
    • -

      Fix have_received(msg).with(args).exactly(n).times and -receive(msg).with(args).exactly(n).times failure messages for -when the message was received the wrong number of times with the specified -args, and also received additional times with other arguments. Previously -it confusingly listed the arguments as being mis-matched (even when the -double was allowed to receive with any args) rather than listing the -count. (John Ceh, #918)

      -
    • -

      Fix any_args/anything support so that we avoid -calling obj == anything on user objects that may have -improperly implemented == in a way that raises errors. (Myron -Marston, #924)

      -
    • -

      Fix edge case involving stubbing the same method on a class and a subclass -which previously hit a NoMethodError internally in RSpec. -(Myron Marston #954)

      -
    • -

      Fix edge case where the message received count would be incremented -multiple times for one failure. (Myron Marston, #957)

      -
    • -

      Fix failure messages for when spies received the expected message with -different arguments and also received another message. (Maurício Linhares, -#960)

      -
    • -

      Silence whitespace-only diffs. (Myron Marston, #969)

      -
    - -

    3.2.1 / 2015-02-23

    - -

    Full -Changelog

    + +
      +
    • Ensure expectations that raise eagerly also raise during RSpec verification. +This means that if exceptions are caught inside test execution the test will +still fail. (Sam Phippen, #884)
    • +
    • Fix have_received(msg).with(args).exactly(n).times and +receive(msg).with(args).exactly(n).times failure messages +for when the message was received the wrong number of times with +the specified args, and also received additional times with other +arguments. Previously it confusingly listed the arguments as being +mis-matched (even when the double was allowed to receive with any +args) rather than listing the count. (John Ceh, #918)
    • +
    • Fix any_args/anything support so that we avoid calling obj == anything +on user objects that may have improperly implemented == in a way that +raises errors. (Myron Marston, #924)
    • +
    • Fix edge case involving stubbing the same method on a class and a subclass +which previously hit a NoMethodError internally in RSpec. (Myron Marston #954)
    • +
    • Fix edge case where the message received count would be incremented multiple +times for one failure. (Myron Marston, #957)
    • +
    • Fix failure messages for when spies received the expected message with +different arguments and also received another message. (Maurício Linhares, #960)
    • +
    • Silence whitespace-only diffs. (Myron Marston, #969)
    • +
    + +

    3.2.1 / 2015-02-23

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Add missing rspec/support/differ require so that rspec-mocks -can be used w/o rspec-expectations (which also loads the differ and hided -the fact we forgot to require it). (Myron Marston, #893)

      -
    • -

      Revert tracking of received arg mutation (added in 3.2.0 to provide an -error in a situation we can't support) as our implementation has side -effects on non-standard objects and there's no solution we could come -up with that always works. (Myron Marston, #900)

      -
    - -

    3.2.0 / 2015-02-03

    - -

    Full -Changelog

    + +
      +
    • Add missing rspec/support/differ require so that rspec-mocks can be +used w/o rspec-expectations (which also loads the differ and hided the +fact we forgot to require it). (Myron Marston, #893)
    • +
    • Revert tracking of received arg mutation (added in 3.2.0 to provide an +error in a situation we can't support) as our implementation has side +effects on non-standard objects and there's no solution we could come +up with that always works. (Myron Marston, #900)
    • +
    + +

    3.2.0 / 2015-02-03

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Treat any_args as an arg splat, allowing it to match an -arbitrary number of args at any point in an arg list. (Myron Marston, -#786)

      -
    • -

      Print diffs when arguments in mock expectations are mismatched. (Sam -Phippen, #751)

      -
    • -

      Support names for verified doubles (instance_double, -instance_spy, class_double, -class_spy, object_double, -object_spy). (Cezary Baginski, #826)

      -
    • -

      Make array_including and hash_including argument -matchers composable. (Sam Phippen, #819)

      -
    • -

      Make allow_any_instance_of(...).to -receive(...).and_wrap_original work. (Ryan Fitzgerald, #869)

      -
    + +
      +
    • Treat any_args as an arg splat, allowing it to match an arbitrary +number of args at any point in an arg list. (Myron Marston, #786)
    • +
    • Print diffs when arguments in mock expectations are mismatched. +(Sam Phippen, #751)
    • +
    • Support names for verified doubles (instance_double, instance_spy, +class_double, class_spy, object_double, object_spy). (Cezary +Baginski, #826)
    • +
    • Make array_including and hash_including argument matchers composable. +(Sam Phippen, #819)
    • +
    • Make allow_any_instance_of(...).to receive(...).and_wrap_original +work. (Ryan Fitzgerald, #869)
    • +

    Bug Fixes:

    -
    • -

      Provide a clear error when users wrongly combine no_args with -additional arguments (e.g. expect().to receive().with(no_args, -1)). (Myron Marston, #786)

      -
    • -

      Provide a clear error when users wrongly use any_args multiple -times in the same argument list (e.g. expect().to -receive().with(any_args, 1, any_args). (Myron Marston, #786)

      -
    • -

      Prevent the error generator from using user object #description methods. -See #685. -(Sam Phippen, #751)

      -
    • -

      Make verified doubles declared as -(instance|class)_double(SomeConst) work properly when -SomeConst has previously been stubbed. -(instance|class)_double("SomeClass") already worked -properly. (Myron Marston, #824)

      -
    • -

      Add a matcher description for receive, -receive_messages and receive_message_chain. -(Myron Marston, #828)

      -
    • -

      Validate invocation args for null object verified doubles. (Myron Marston, -#829)

      -
    • -

      Fix RSpec::Mocks::Constant.original when called with an -invalid constant to return an object indicating the constant name is -invalid, rather than blowing up. (Myron Marston, #833)

      -
    • -

      Make extend RSpec::Mocks::ExampleMethods on any object work -properly to add the rspec-mocks API to that object. Previously, -expect would be undefined. (Myron Marston, #846)

      -
    • -

      Fix require 'rspec/mocks/standalone' so that it only -affects main and not every object. It's really only -intended to be used in a REPL like IRB, but some gems have loaded it, -thinking it needs to be loaded when using rspec-mocks outside the context -of rspec-core. (Myron Marston, #846)

      -
    • -

      Prevent message expectations from being modified by customization methods -(e.g. with) after they have been invoked. (Sam Phippen and -Melanie Gilman, #837)

      -
    • -

      Handle cases where a method stub cannot be removed due to something -external to RSpec monkeying with the method definition. This can happen, -for example, when you file.reopen(io) after previously -stubbing a method on the file object. (Myron Marston, #853)

      -
    • -

      Provide a clear error when received message args are mutated before a -have_received(...).with(...) expectation. (Myron Marston, -#868)

      -
    - -

    3.1.3 / 2014-10-08

    - -

    Full -Changelog

    + +
      +
    • Provide a clear error when users wrongly combine no_args with +additional arguments (e.g. expect().to receive().with(no_args, 1)). +(Myron Marston, #786)
    • +
    • Provide a clear error when users wrongly use any_args multiple times in the +same argument list (e.g. expect().to receive().with(any_args, 1, any_args). +(Myron Marston, #786)
    • +
    • Prevent the error generator from using user object #description methods. +See #685. +(Sam Phippen, #751)
    • +
    • Make verified doubles declared as (instance|class)_double(SomeConst) +work properly when SomeConst has previously been stubbed. +(instance|class)_double("SomeClass") already worked properly. +(Myron Marston, #824)
    • +
    • Add a matcher description for receive, receive_messages and +receive_message_chain. (Myron Marston, #828)
    • +
    • Validate invocation args for null object verified doubles. +(Myron Marston, #829)
    • +
    • Fix RSpec::Mocks::Constant.original when called with an invalid +constant to return an object indicating the constant name is invalid, +rather than blowing up. (Myron Marston, #833)
    • +
    • Make extend RSpec::Mocks::ExampleMethods on any object work properly +to add the rspec-mocks API to that object. Previously, expect would +be undefined. (Myron Marston, #846)
    • +
    • Fix require 'rspec/mocks/standalone' so that it only affects main +and not every object. It's really only intended to be used in a REPL +like IRB, but some gems have loaded it, thinking it needs to be loaded +when using rspec-mocks outside the context of rspec-core. +(Myron Marston, #846)
    • +
    • Prevent message expectations from being modified by customization methods +(e.g. with) after they have been invoked. (Sam Phippen and Melanie Gilman, #837)
    • +
    • Handle cases where a method stub cannot be removed due to something +external to RSpec monkeying with the method definition. This can +happen, for example, when you file.reopen(io) after previously +stubbing a method on the file object. (Myron Marston, #853)
    • +
    • Provide a clear error when received message args are mutated before +a have_received(...).with(...) expectation. (Myron Marston, #868)
    • +
    + +

    3.1.3 / 2014-10-08

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Correct received messages count when used with have_received -matcher. (Jon Rowe, #793)

      -
    • -

      Provide a clear error message when you use -allow_any_instance_of(...) or -expect_any_instance_of(...) with the -have_received matcher (they are not intended to be used -together and previously caused an odd internal failure in rspec-mocks). -(Jon Rowe, #799).

      -
    • -

      Fix verified double with verification so that it applies to -method stubs. (Myron Marston, #790)

      -
    - -

    3.1.2 / 2014-09-26

    - -

    Full -Changelog

    + +
      +
    • Correct received messages count when used with have_received matcher. +(Jon Rowe, #793)
    • +
    • Provide a clear error message when you use allow_any_instance_of(...) or +expect_any_instance_of(...) with the have_received matcher (they are +not intended to be used together and previously caused an odd internal +failure in rspec-mocks). (Jon Rowe, #799).
    • +
    • Fix verified double with verification so that it applies to method +stubs. (Myron Marston, #790)
    • +
    + +

    3.1.2 / 2014-09-26

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Provide a clear error message when you use allow(...) with the -have_received matcher (they are not intended to be used -together and previously caused an odd internal failure in rspec-mocks). -(Jon Rowe, #788).

      -
    -

    3.1.1 / 2014-09-18

    +
      +
    • Provide a clear error message when you use allow(...) with the +have_received matcher (they are not intended to be used together +and previously caused an odd internal failure in rspec-mocks). (Jon Rowe, #788).
    • +
    -

    Full -Changelog

    +

    3.1.1 / 2014-09-18

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Prevent included modules being detected as prepended modules on Ruby 2.0 -when using any_instance_of(...). (Tony Novak, #781)

      -
    -

    3.1.0 / 2014-09-04

    +
      +
    • Prevent included modules being detected as prepended modules on Ruby 2.0 +when using any_instance_of(...). (Tony Novak, #781)
    • +
    + +

    3.1.0 / 2014-09-04

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements:

    -
    • -

      Add spying methods (spy, ìnstance_spy, -class_spy and object_spy) which create doubles -as null objects for use with spying in testing. (Sam Phippen, #671)

      -
    • -

      have_received matcher will raise “does not implement” errors -correctly when used with verifying doubles and partial doubles. (Xavier -Shay, #722)

      -
    • -

      Allow matchers to be used in place of keyword arguments in -with expectations. (Xavier Shay, #726)

      -
    • -

      Add thrice modifier to message expectation interface as a -synonym for exactly(3).times. (Dennis Taylor, #753)

      -
    • -

      Add more thrice synonyms e.g. .at_least(:thrice), -.at_most(:thrice), receive(...).thrice and -have_received(...).thrice. (Jon Rowe, #754)

      -
    • -

      Add and_wrap_original modifier for partial doubles to mutate -the response from a method. (Jon Rowe, #762)

      -
    + +
      +
    • Add spying methods (spy, ìnstance_spy, class_spy and object_spy) +which create doubles as null objects for use with spying in testing. (Sam +Phippen, #671)
    • +
    • have_received matcher will raise "does not implement" errors correctly when +used with verifying doubles and partial doubles. (Xavier Shay, #722)
    • +
    • Allow matchers to be used in place of keyword arguments in with +expectations. (Xavier Shay, #726)
    • +
    • Add thrice modifier to message expectation interface as a synonym +for exactly(3).times. (Dennis Taylor, #753)
    • +
    • Add more thrice synonyms e.g. .at_least(:thrice), .at_most(:thrice), +receive(...).thrice and have_received(...).thrice. (Jon Rowe, #754)
    • +
    • Add and_wrap_original modifier for partial doubles to mutate the +response from a method. (Jon Rowe, #762)
    • +

    Bug Fixes:

    -
    • -

      Remove any_number_of_times from any_instance -recorders that were erroneously causing mention of the method in -documentation. (Jon Rowe, #760)

      -
    • -

      Prevent included modules being detected as prepended modules on Ruby 2.0. -(Eugene Kenny, #771)

      -
    -

    3.0.4 / 2014-08-14

    +
      +
    • Remove any_number_of_times from any_instance recorders that were +erroneously causing mention of the method in documentation. (Jon Rowe, #760)
    • +
    • Prevent included modules being detected as prepended modules on Ruby 2.0. +(Eugene Kenny, #771)
    • +
    + +

    3.0.4 / 2014-08-14

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Restore kind_of(x) to match using arg.kind_of?(x) -(like RSpec 2) rather than x === arg. (Jon Rowe, #750)

      -
    -

    3.0.3 / 2014-07-21

    +
      +
    • Restore kind_of(x) to match using arg.kind_of?(x) (like RSpec 2) +rather than x === arg. (Jon Rowe, #750)
    • +
    -

    Full -Changelog

    +

    3.0.3 / 2014-07-21

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      have_received matcher will raise “does not implement” errors -correctly when used with verifying doubles and partial doubles. (Xavier -Shay, #722)

      -
    • -

      Make double.as_null_object.dup and -double.as_null_object.clone make the copies be null objects. -(Myron Marston, #732)

      -
    • -

      Don't inadvertently define BasicObject in 1.8.7. (Chris -Griego, #739)

      -
    - -

    3.0.2 / 2014-06-19

    - -

    Full -Changelog

    + +
      +
    • have_received matcher will raise "does not implement" errors correctly when +used with verifying doubles and partial doubles. (Xavier Shay, #722)
    • +
    • Make double.as_null_object.dup and double.as_null_object.clone +make the copies be null objects. (Myron Marston, #732)
    • +
    • Don't inadvertently define BasicObject in 1.8.7. (Chris Griego, #739)
    • +
    + +

    3.0.2 / 2014-06-19

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix edge case that triggered “can't add a new key into hash during -iteration” during mock verification. (Sam Phippen, Myron Marston, #711)

      -
    • -

      Fix verifying doubles so that when they accidentally leak into another -example, they provide the same clear error message that normal doubles do. -(Myron Marston, #718)

      -
    • -

      Make ordered work with exact receive counts. (Sam Phippen, -#713)

      -
    - -

    3.0.1 / 2014-06-07

    - -

    Full -Changelog

    + +
      +
    • Fix edge case that triggered "can't add a new key into hash during +iteration" during mock verification. (Sam Phippen, Myron Marston, #711)
    • +
    • Fix verifying doubles so that when they accidentally leak into another +example, they provide the same clear error message that normal doubles +do. (Myron Marston, #718)
    • +
    • Make ordered work with exact receive counts. (Sam Phippen, #713)
    • +
    + +

    3.0.1 / 2014-06-07

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix receive_message_chain(...) so that it supports -with just like stub_chain did. (Jon Rowe, #697)

      -
    • -

      Fix regression in expect_any_instance_of so that it expects -the message on any instance rather than on every -instance. (Myron Marston, #699)

      -
    -

    3.0.0 / 2014-06-01

    +
      +
    • Fix receive_message_chain(...) so that it supports with just like +stub_chain did. (Jon Rowe, #697)
    • +
    • Fix regression in expect_any_instance_of so that it expects the +message on any instance rather than on every instance. +(Myron Marston, #699)
    • +
    + +

    3.0.0 / 2014-06-01

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix module prepend detection to work properly on ruby 2.0 for a case where -a module is extended onto itself. (Myron Marston)

      -
    • -

      Fix transfer_nested_constants option so that transferred -constants get properly reset at the end of the example. (Myron Marston)

      -
    • -

      Fix config.transfer_nested_constants = true so that you -don't erroneously get errors when stubbing a constant that is not a -module or a class. (Myron Marston)

      -
    • -

      Fix regression that caused double(:class => SomeClass) to -later trigger infinite recursion. (Myron Marston)

      -
    • -

      Fix bug in have_received(...).with(...).ordered where it was -not taking the args into account when checking the order. (Myron Marston)

      -
    • -

      Fix bug in have_received(...).ordered where it was wrongly -considering stubs when checking the order. (Myron Marston)

      -
    • -

      Message expectation matchers now show descriptions from argument matchers -when their expectations aren't met. (Jon Rowe)

      -
    • -

      Display warning when encountering TypeError during instance -method staging on 2.0.0-p195, suffers from bugs.ruby-lang.org/issues/8686 -too. (Cezar Halmagean).

      -
    - -

    3.0.0.rc1 / 2014-05-18

    - -

    Full -Changelog

    + +
      +
    • Fix module prepend detection to work properly on ruby 2.0 for a case +where a module is extended onto itself. (Myron Marston)
    • +
    • Fix transfer_nested_constants option so that transferred constants +get properly reset at the end of the example. (Myron Marston)
    • +
    • Fix config.transfer_nested_constants = true so that you don't +erroneously get errors when stubbing a constant that is not a module +or a class. (Myron Marston)
    • +
    • Fix regression that caused double(:class => SomeClass) to later +trigger infinite recursion. (Myron Marston)
    • +
    • Fix bug in have_received(...).with(...).ordered where it was not +taking the args into account when checking the order. (Myron Marston)
    • +
    • Fix bug in have_received(...).ordered where it was wrongly +considering stubs when checking the order. (Myron Marston)
    • +
    • Message expectation matchers now show descriptions from argument +matchers when their expectations aren't met. (Jon Rowe)
    • +
    • Display warning when encountering TypeError during instance method +staging on 2.0.0-p195, suffers from https://bugs.ruby-lang.org/issues/8686 +too. (Cezar Halmagean).
    • +
    + +

    3.0.0.rc1 / 2014-05-18

    + +

    Full Changelog

    Breaking Changes for 3.0.0:

    -
    • -

      Remove RSpec::Mocks::TestDouble.extend_onto. (Myron Marston)

      -
    • -

      Remove RSpec::Mocks::ConstantStubber. (Jon Rowe)

      -
    • -

      Make monkey-patch of Marshal to support dumping of stubbed objects opt-in. -(Xavier Shay)

      -
    + +
      +
    • Remove RSpec::Mocks::TestDouble.extend_onto. (Myron Marston)
    • +
    • Remove RSpec::Mocks::ConstantStubber. (Jon Rowe)
    • +
    • Make monkey-patch of Marshal to support dumping of stubbed objects opt-in. +(Xavier Shay)
    • +

    Enhancements:

    -
    • -

      Instead of crashing when cleaning up stub methods on a frozen object, it -now issues a warning explaining that it's impossible to clean up the -stubs. (Justin Coyne and Sam Phippen)

      -
    • -

      Add meaningful descriptions to anything, -duck_type and instance_of argument matchers. -(Jon Rowe)

      -
    + +
      +
    • Instead of crashing when cleaning up stub methods on a frozen object, it now +issues a warning explaining that it's impossible to clean up the stubs. +(Justin Coyne and Sam Phippen)
    • +
    • Add meaningful descriptions to anything, duck_type and instance_of argument +matchers. (Jon Rowe)
    • +

    Bug Fixes:

    -
    • -

      Fix regression introduced in 3.0.0.beta2 that caused -double.as_null_object.to_str to return the double rather than -a string. (Myron Marston)

      -
    • -

      Fix bug in expect(dbl).to receive_message_chain(:foo, :bar) -where it was not setting an expectation for the last message in the chain. -(Jonathan del Strother)

      -
    • -

      Allow verifying partial doubles to have private methods stubbed. (Xavier -Shay)

      -
    • -

      Fix bug with allowing/expecting messages on Class objects which have had -their singleton class prepended to. (Jon Rowe)

      -
    • -

      Fix an issue with 1.8.7 not running implementation blocks on partial -doubles. (Maurício Linhares)

      -
    • -

      Prevent StackLevelTooDeep errors when stubbing an -any_instance method that's accessed in -inspect by providing our own inspect output. (Jon Rowe)

      -
    • -

      Fix bug in any_instance logic that did not allow you to mock -or stub private methods if verify_partial_doubles was -configured. (Oren Dobzinski)

      -
    • -

      Include useful error message when trying to observe an unimplemented method -on an any instance. (Xavier Shay)

      -
    • -

      Fix and_call_original to work properly when multiple classes -in an inheritance hierarchy have been stubbed with the same method. (Myron -Marston)

      -
    • -

      Fix any_instance so that it updates existing instances that -have already been stubbed. (Myron Marston)

      -
    • -

      Fix verified doubles so that their class name is included in failure -messages. (Myron Marston)

      -
    • -

      Fix expect_any_instance_of so that when the message is -received on an individual instance that has been directly stubbed, it -still satisfies the expectation. (Sam Phippen, Myron Marston)

      -
    • -

      Explicitly disallow using any_instance to mock or stub a -method that is defined on a module prepended onto the class. This -triggered SystemStackError before and is very hard to support -so we are not supporting it at this time. (Myron Marston)

      -
    - -

    3.0.0.beta2 / 2014-02-17

    - -

    Full -Changelog

    + +
      +
    • Fix regression introduced in 3.0.0.beta2 that caused +double.as_null_object.to_str to return the double rather +than a string. (Myron Marston)
    • +
    • Fix bug in expect(dbl).to receive_message_chain(:foo, :bar) where it was +not setting an expectation for the last message in the chain. +(Jonathan del Strother)
    • +
    • Allow verifying partial doubles to have private methods stubbed. (Xavier Shay)
    • +
    • Fix bug with allowing/expecting messages on Class objects which have had +their singleton class prepended to. (Jon Rowe)
    • +
    • Fix an issue with 1.8.7 not running implementation blocks on partial doubles. +(Maurício Linhares)
    • +
    • Prevent StackLevelTooDeep errors when stubbing an any_instance method that's +accessed in inspect by providing our own inspect output. (Jon Rowe)
    • +
    • Fix bug in any_instance logic that did not allow you to mock or stub +private methods if verify_partial_doubles was configured. (Oren Dobzinski)
    • +
    • Include useful error message when trying to observe an unimplemented method +on an any instance. (Xavier Shay)
    • +
    • Fix and_call_original to work properly when multiple classes in an +inheritance hierarchy have been stubbed with the same method. (Myron Marston)
    • +
    • Fix any_instance so that it updates existing instances that have +already been stubbed. (Myron Marston)
    • +
    • Fix verified doubles so that their class name is included in failure +messages. (Myron Marston)
    • +
    • Fix expect_any_instance_of so that when the message is received +on an individual instance that has been directly stubbed, it still +satisfies the expectation. (Sam Phippen, Myron Marston)
    • +
    • Explicitly disallow using any_instance to mock or stub a method +that is defined on a module prepended onto the class. This triggered +SystemStackError before and is very hard to support so we are not +supporting it at this time. (Myron Marston)
    • +
    + +

    3.0.0.beta2 / 2014-02-17

    + +

    Full Changelog

    Breaking Changes for 3.0.0:

    -
    • -

      Rename RSpec::Mocks::Mock to -RSpec::Mocks::Double. (Myron Marston)

      -
    • -

      Change how to integrate rspec-mocks in other test frameworks. You now need -to include RSpec::Mocks::ExampleMethods in your test context. -(Myron Marston)

      -
    • -

      Prevent RSpec mocks' doubles and partial doubles from being used -outside of the per-test lifecycle (e.g. from a before(:all) -hook). (Sam Phippen)

      -
    • -

      Remove the host argument of RSpec::Mocks.setup. -Instead RSpec::Mocks::ExampleMethods should be included -directly in the scope where RSpec's mocking capabilities are used. -(Sam Phippen)

      -
    • -

      Make test doubles raise errors if you attempt to use them after they get -reset, to help surface issues when you accidentally retain references to -test doubles and attempt to reuse them in another example. (Myron Marston)

      -
    • -

      Remove support for and_return { value } and -and_return without arguments. (Yuji Nakayama)

      -
    + +
      +
    • Rename RSpec::Mocks::Mock to RSpec::Mocks::Double. (Myron Marston)
    • +
    • Change how to integrate rspec-mocks in other test frameworks. You now +need to include RSpec::Mocks::ExampleMethods in your test context. +(Myron Marston)
    • +
    • Prevent RSpec mocks' doubles and partial doubles from being used outside of +the per-test lifecycle (e.g. from a before(:all) hook). (Sam Phippen)
    • +
    • Remove the host argument of RSpec::Mocks.setup. Instead +RSpec::Mocks::ExampleMethods should be included directly in the scope where +RSpec's mocking capabilities are used. (Sam Phippen)
    • +
    • Make test doubles raise errors if you attempt to use them after they +get reset, to help surface issues when you accidentally retain +references to test doubles and attempt to reuse them in another +example. (Myron Marston)
    • +
    • Remove support for and_return { value } and and_return without arguments. (Yuji Nakayama)
    • +

    Enhancements:

    -
    • -

      Add receive_message_chain which provides the functionality of -the old stub_chain for the new allow/expect syntax. Use it -like so: allow(...).to receive_message_chain(:foo, :bar, -:bazz). (Sam Phippen).

      -
    • -

      Change argument matchers to use === as their primary matching -protocol, since their semantics mirror that of a case or rescue statement -(which uses === for matching). (Myron Marston)

      -
    • -

      Add RSpec::Mocks.with_temporary_scope, which allows you to -create temporary rspec-mocks scopes in arbitrary places (such as a -before(:all) hook). (Myron Marston)

      -
    • -

      Support keyword arguments when checking arity with verifying doubles. -(Xavier Shay)

      -
    + +
      +
    • Add receive_message_chain which provides the functionality of the old +stub_chain for the new allow/expect syntax. Use it like so: allow(...).to +receive_message_chain(:foo, :bar, :bazz). (Sam Phippen).
    • +
    • Change argument matchers to use === as their primary matching +protocol, since their semantics mirror that of a case or rescue statement +(which uses === for matching). (Myron Marston)
    • +
    • Add RSpec::Mocks.with_temporary_scope, which allows you to create +temporary rspec-mocks scopes in arbitrary places (such as a +before(:all) hook). (Myron Marston)
    • +
    • Support keyword arguments when checking arity with verifying doubles. +(Xavier Shay)
    • +

    Bug Fixes:

    -
    • -

      Fix regression in 3.0.0.beta1 that caused -double("string_name" => :value) to stop working. -(Xavier Shay)

      -
    • -

      Fix the way rspec-mocks and rspec-core interact so that if users define a -let with the same name as one of the methods from -RSpec::Mocks::ArgumentMatchers, the user's -let takes precedence. (Michi Huber, Myron Marston)

      -
    • -

      Fix verified doubles so that their methods match the visibility (public, -protected or private) of the interface they verify against. (Myron -Marston)

      -
    • -

      Fix verified null object doubles so that they do not wrongly report that -they respond to anything. They only respond to methods available on the -interface they verify against. (Myron Marston)

      -
    • -

      Fix deprecation warning for use of old :should syntax w/o -explicit config so that it no longer is silenced by an extension gem such -as rspec-rails when it calls -config.add_stub_and_should_receive_to. (Sam Phippen)

      -
    • -

      Fix expect syntax so that it does not wrongly emit a -“You're overriding a previous implementation for this stub” warning -when you are not actually doing that. (Myron Marston)

      -
    • -

      Fix any_instance.unstub when used on sub classes for whom the -super class has had any_instance.stub invoked on. (Jon Rowe)

      -
    • -

      Fix regression in -stub_chain/receive_message_chain that caused it -to raise an ArgumentError when passing args to the stubbed -methods. (Sam Phippen)

      -
    • -

      Correct stub of undefined parent modules all the way down when stubbing a -nested constant. (Xavier Shay)

      -
    • -

      Raise VerifyingDoubleNotDefinedError when a constant is not -defined for a verifying class double. (Maurício Linhares)

      -
    • -

      Remove Double#to_str, which caused confusing raise -some_double behavior. (Maurício Linhares)

      -
    - -

    3.0.0.beta1 / 2013-11-07

    - -

    Full -Changelog

    + +
      +
    • Fix regression in 3.0.0.beta1 that caused double("string_name" => :value) +to stop working. (Xavier Shay)
    • +
    • Fix the way rspec-mocks and rspec-core interact so that if users +define a let with the same name as one of the methods +from RSpec::Mocks::ArgumentMatchers, the user's let takes +precedence. (Michi Huber, Myron Marston)
    • +
    • Fix verified doubles so that their methods match the visibility +(public, protected or private) of the interface they verify +against. (Myron Marston)
    • +
    • Fix verified null object doubles so that they do not wrongly +report that they respond to anything. They only respond to methods +available on the interface they verify against. (Myron Marston)
    • +
    • Fix deprecation warning for use of old :should syntax w/o explicit +config so that it no longer is silenced by an extension gem such +as rspec-rails when it calls config.add_stub_and_should_receive_to. +(Sam Phippen)
    • +
    • Fix expect syntax so that it does not wrongly emit a "You're +overriding a previous implementation for this stub" warning when +you are not actually doing that. (Myron Marston)
    • +
    • Fix any_instance.unstub when used on sub classes for whom the super +class has had any_instance.stub invoked on. (Jon Rowe)
    • +
    • Fix regression in stub_chain/receive_message_chain that caused +it to raise an ArgumentError when passing args to the stubbed +methods. (Sam Phippen)
    • +
    • Correct stub of undefined parent modules all the way down when stubbing a +nested constant. (Xavier Shay)
    • +
    • Raise VerifyingDoubleNotDefinedError when a constant is not defined for +a verifying class double. (Maurício Linhares)
    • +
    • Remove Double#to_str, which caused confusing raise some_double +behavior. (Maurício Linhares)
    • +
    + +

    3.0.0.beta1 / 2013-11-07

    + +

    Full Changelog

    Breaking Changes for 3.0.0:

    -
    • -

      Raise an explicit error if should_not_receive(...).and_return -is used. (Sam Phippen)

      -
    • -

      Remove 1.8.6 workarounds. (Jon Rowe)

      -
    • -

      Remove stub! and unstub!. (Sam Phippen)

      -
    • -

      Remove mock(name, methods) and stub(name, -methods), leaving double(name, methods) for creating -test doubles. (Sam Phippen, Michi Huber)

      -
    • -

      Remove any_number_of_times since -should_receive(:msg).any_number_of_times is really a stub in -a mock's clothing. (Sam Phippen)

      -
    • -

      Remove support for re-using the same null-object test double in multiple -examples. Test doubles are designed to only live for one example. (Myron -Marston)

      -
    • -

      Make at_least(0) raise an error. (Sam Phippen)

      -
    • -

      Remove support for require 'spec/mocks' which had been -kept in place for backwards compatibility with RSpec 1. (Myron Marston)

      -
    • -

      Blocks provided to with are always used as implementation. -(Xavier Shay)

      -
    • -

      The config option (added in 2.99) to yield the receiver to -any_instance implementation blocks now defaults to “on”. (Sam -Phippen)

      -
    + +
      +
    • Raise an explicit error if should_not_receive(...).and_return is used. (Sam +Phippen)
    • +
    • Remove 1.8.6 workarounds. (Jon Rowe)
    • +
    • Remove stub! and unstub!. (Sam Phippen)
    • +
    • Remove mock(name, methods) and stub(name, methods), leaving +double(name, methods) for creating test doubles. (Sam Phippen, Michi Huber)
    • +
    • Remove any_number_of_times since should_receive(:msg).any_number_of_times +is really a stub in a mock's clothing. (Sam Phippen)
    • +
    • Remove support for re-using the same null-object test double in multiple +examples. Test doubles are designed to only live for one example. +(Myron Marston)
    • +
    • Make at_least(0) raise an error. (Sam Phippen)
    • +
    • Remove support for require 'spec/mocks' which had been kept +in place for backwards compatibility with RSpec 1. (Myron Marston)
    • +
    • Blocks provided to with are always used as implementation. (Xavier Shay)
    • +
    • The config option (added in 2.99) to yield the receiver to +any_instance implementation blocks now defaults to "on". (Sam Phippen)
    • +

    Enhancements:

    -
    • -

      Allow the have_received matcher to use a block to set further -expectations on arguments. (Tim Cowlishaw)

      -
    • -

      Provide instance_double and class_double to -create verifying doubles, ported from rspec-fire. (Xavier -Shay)

      -
    • -

      as_null_object on a verifying double only responds to defined -methods. (Xavier Shay)

      -
    • -

      Provide object_double to create verified doubles of specific -object instances. (Xavier Shay)

      -
    • -

      Provide verify_partial_doubles configuration that provides -object_double like verification behaviour on partial doubles. -(Xavier Shay)

      -
    • -

      Improved performance of double creation, particularly those with many -attributes. (Xavier Shay)

      -
    • -

      Default value of transfer_nested_constants option for constant -stubbing can be configured. (Xavier Shay)

      -
    • -

      Messages can be allowed or expected on in bulk via -receive_messages(:message => :value). (Jon Rowe)

      -
    • -

      allow(Klass.any_instance) and -expect(Klass.any_instance) now print a warning. This is -usually a mistake, and users usually want -allow_any_instance_of or expect_any_instance_of -instead. (Sam Phippen)

      -
    • -

      instance_double and class_double raise -ArgumentError if the underlying module is loaded and the -arity of the method being invoked does not match the arity of the method -as it is actually implemented. (Andy Lindeman)

      -
    • -

      Spies can now check their invocation ordering is correct. (Jon Rowe)

      -
    + +
      +
    • Allow the have_received matcher to use a block to set further expectations +on arguments. (Tim Cowlishaw)
    • +
    • Provide instance_double and class_double to create verifying doubles, +ported from rspec-fire. (Xavier Shay)
    • +
    • as_null_object on a verifying double only responds to defined methods. +(Xavier Shay)
    • +
    • Provide object_double to create verified doubles of specific object +instances. (Xavier Shay)
    • +
    • Provide verify_partial_doubles configuration that provides object_double +like verification behaviour on partial doubles. (Xavier Shay)
    • +
    • Improved performance of double creation, particularly those with many +attributes. (Xavier Shay)
    • +
    • Default value of transfer_nested_constants option for constant stubbing can +be configured. (Xavier Shay)
    • +
    • Messages can be allowed or expected on in bulk via +receive_messages(:message => :value). (Jon Rowe)
    • +
    • allow(Klass.any_instance) and expect(Klass.any_instance) now print a +warning. This is usually a mistake, and users usually want +allow_any_instance_of or expect_any_instance_of instead. (Sam Phippen)
    • +
    • instance_double and class_double raise ArgumentError if the underlying +module is loaded and the arity of the method being invoked does not match the +arity of the method as it is actually implemented. (Andy Lindeman)
    • +
    • Spies can now check their invocation ordering is correct. (Jon Rowe)
    • +

    Deprecations:

    -
    • -

      Using the old :should syntax without explicitly configuring it -is deprecated. It will continue to work but will emit a deprecation -warning in RSpec 3 if you do not explicitly enable it. (Sam Phippen)

      -
    + +
      +
    • Using the old :should syntax without explicitly configuring it +is deprecated. It will continue to work but will emit a deprecation +warning in RSpec 3 if you do not explicitly enable it. (Sam Phippen)
    • +

    Bug Fixes:

    -
    • -

      Fix and_call_original to handle a complex edge case involving -singleton class ancestors. (Marc-André Lafortune, Myron Marston)

      -
    • -

      When generating an error message for unexpected arguments, use -#inspect rather than #description if -#description returns nil or -'' so that you still get a useful message. (Nick -DeLuca)

      -
    - -

    2.99.4 / 2015-06-19

    - -

    Full -Changelog

    + +
      +
    • Fix and_call_original to handle a complex edge case involving +singleton class ancestors. (Marc-André Lafortune, Myron Marston)
    • +
    • When generating an error message for unexpected arguments, +use #inspect rather than #description if #description +returns nil or '' so that you still get a useful message. +(Nick DeLuca)
    • +
    + +

    2.99.4 / 2015-06-19

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Add missing deprecation for using with with no arguments e.g. -with(). (Yousuke, #970)

      -
    -

    2.99.3 / 2015-01-09

    +
      +
    • Add missing deprecation for using with with no arguments e.g. with(). (Yousuke, #970)
    • +
    + +

    2.99.3 / 2015-01-09

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix regression that caused an error when a test double was deserialized -from YAML. (Yuji Nakayama, #777)

      -
    -

    2.99.2 / 2014-07-21

    +
      +
    • Fix regression that caused an error when a test double was deserialized from YAML. (Yuji Nakayama, #777)
    • +
    -

    Full -Changelog

    +

    2.99.2 / 2014-07-21

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Warn about upcoming change to #=== matching and -DateTime#=== behaviour. (Jon Rowe, #735)

      -
    -

    2.99.1 / 2014-06-12

    +
      +
    • Warn about upcoming change to #=== matching and DateTime#=== behaviour. +(Jon Rowe, #735)
    • +
    + +

    2.99.1 / 2014-06-12

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix bug that caused errors at the end of each example when a -double.as_null_object had been frozen. (Yuji Nakayama, #698)

      -
    + +
      +
    • Fix bug that caused errors at the end of each example +when a double.as_null_object had been frozen. (Yuji Nakayama, #698)
    • +

    Deprecations:

    -
    • -

      Deprecate freezing a test double. (Yuji Nakayama, #698)

      -
    -

    2.99.0 / 2014-06-01

    +
      +
    • Deprecate freezing a test double. (Yuji Nakayama, #698)
    • +
    + +

    2.99.0 / 2014-06-01

    -

    Full -Changelog

    +

    Full Changelog

    No changes. Just taking it out of pre-release.

    -

    2.99.0.rc1 / 2014-05-18

    +

    2.99.0.rc1 / 2014-05-18

    -

    Full -Changelog

    +

    Full Changelog

    Deprecations:

    -
    • -

      Deprecate RSpec::Mocks::TestDouble.extend_onto. (Myron -Marston)

      -
    • -

      Deprecate RSpec::Mocks::ConstantStubber. (Jon Rowe)

      -
    • -

      Deprecate Marshal.dump monkey-patch without opt-in. (Xavier -Shay)

      -
    - -

    2.99.0.beta2 / 2014-02-17

    - -

    Full -Changelog

    + +
      +
    • Deprecate RSpec::Mocks::TestDouble.extend_onto. (Myron Marston)
    • +
    • Deprecate RSpec::Mocks::ConstantStubber. (Jon Rowe)
    • +
    • Deprecate Marshal.dump monkey-patch without opt-in. (Xavier Shay)
    • +
    + +

    2.99.0.beta2 / 2014-02-17

    + +

    Full Changelog

    Deprecations:

    -
    • -

      Deprecate RSpec::Mocks::Mock in favor of -RSpec::Mocks::Double. (Myron Marston)

      -
    • -

      Deprecate the host argument of -RSpec::Mocks.setup. Instead -RSpec::Mocks::ExampleMethods should be included directly in -the scope where RSpec's mocking capabilities are used. (Sam Phippen)

      -
    • -

      Deprecate using any of rspec-mocks' features outside the per-test -lifecycle (e.g. from a before(:all) hook). (Myron Marston)

      -
    • -

      Deprecate re-using a test double in another example. (Myron Marston)

      -
    • -

      Deprecate and_return { value } and and_return -without arguments. (Yuji Nakayama)

      -
    - -

    2.99.0.beta1 / 2013-11-07

    - -

    Full -Changelog

    + +
      +
    • Deprecate RSpec::Mocks::Mock in favor of RSpec::Mocks::Double. +(Myron Marston)
    • +
    • Deprecate the host argument of RSpec::Mocks.setup. Instead +RSpec::Mocks::ExampleMethods should be included directly in the scope where +RSpec's mocking capabilities are used. (Sam Phippen)
    • +
    • Deprecate using any of rspec-mocks' features outside the per-test +lifecycle (e.g. from a before(:all) hook). (Myron Marston)
    • +
    • Deprecate re-using a test double in another example. (Myron Marston)
    • +
    • Deprecate and_return { value } and and_return without arguments. (Yuji Nakayama)
    • +
    + +

    2.99.0.beta1 / 2013-11-07

    + +

    Full Changelog

    Deprecations

    -
    • -

      Expecting to use lambdas or other strong arity implementations for stub -methods with mis-matched arity is deprecated and support for them will be -removed in 3.0. Either provide the right amount of arguments or use a weak -arity implementation (methods with splats or procs). (Jon Rowe)

      -
    • -

      Using the same test double instance in multiple examples is deprecated. -Test doubles are only meant to live for one example. The mocks and stubs -have always been reset between examples; however, in 2.x the -as_null_object state was not reset and some users relied on -this to have a null object double that is used for many examples. This -behavior will be removed in 3.0. (Myron Marston)

      -
    • -

      Print a detailed warning when an any_instance implementation -block is used when the new -yield_receiver_to_any_instance_implementation_blocks config -option is not explicitly set, as RSpec 3.0 will default to enabling this -new feature. (Sam Phippen)

      -
    + +
      +
    • Expecting to use lambdas or other strong arity implementations for stub +methods with mis-matched arity is deprecated and support for them will be +removed in 3.0. Either provide the right amount of arguments or use a weak +arity implementation (methods with splats or procs). (Jon Rowe)
    • +
    • Using the same test double instance in multiple examples is deprecated. Test +doubles are only meant to live for one example. The mocks and stubs have +always been reset between examples; however, in 2.x the as_null_object +state was not reset and some users relied on this to have a null object +double that is used for many examples. This behavior will be removed in 3.0. +(Myron Marston)
    • +
    • Print a detailed warning when an any_instance implementation block is used +when the new yield_receiver_to_any_instance_implementation_blocks config +option is not explicitly set, as RSpec 3.0 will default to enabling this new +feature. (Sam Phippen)
    • +

    Enhancements:

    -
    • -

      Add a config option to yield the receiver to any_instance -implementation blocks. (Sam Phippen)

      -
    -

    2.14.6 / 2014-02-20

    +
      +
    • Add a config option to yield the receiver to any_instance implementation +blocks. (Sam Phippen)
    • +
    -

    Full -Changelog

    +

    2.14.6 / 2014-02-20

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Ensure any_instance method stubs and expectations are torn -down regardless of expectation failures. (Sam Phippen)

      -
    -

    2.14.5 / 2014-02-01

    +
      +
    • Ensure any_instance method stubs and expectations are torn down regardless of +expectation failures. (Sam Phippen)
    • +
    + +

    2.14.5 / 2014-02-01

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix regression that caused block implementations to not receive all args -on 1.8.7 if the block also receives a block, due to Proc#arity reporting -1 no matter how many args the block receives if it receives a -block, too. (Myron Marston)

      -
    -

    2.14.4 / 2013-10-15

    +
      +
    • Fix regression that caused block implementations to not receive all +args on 1.8.7 if the block also receives a block, due to Proc#arity +reporting 1 no matter how many args the block receives if it +receives a block, too. (Myron Marston)
    • +
    -

    Full -Changelog

    +

    2.14.4 / 2013-10-15

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix issue where unstubing methods on “any instances” would not remove -stubs on existing instances (Jon Rowe)

      -
    • -

      Fix issue with receive(:message) do … end precedence preventing the usage -of modifications (and_return etc) (Jon Rowe)

      -
    -

    2.14.3 / 2013-08-08

    +
      +
    • Fix issue where unstubing methods on "any instances" would not +remove stubs on existing instances (Jon Rowe)
    • +
    • Fix issue with receive(:message) do ... end precedence preventing +the usage of modifications (and_return etc) (Jon Rowe)
    • +
    + +

    2.14.3 / 2013-08-08

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix stubbing some instance methods for classes whose hierarchy includes a -prepended Module (Bradley Schaefer)

      -
    -

    2.14.2 / 2013-07-30

    +
      +
    • Fix stubbing some instance methods for classes whose hierarchy includes +a prepended Module (Bradley Schaefer)
    • +
    -

    Full -Changelog

    +

    2.14.2 / 2013-07-30

    + +

    Full Changelog

    Bug Fixes:

    -
    • -

      Fix as_null_object doubles so that they return -nil from to_ary (Jon Rowe).

      -
    • -

      Fix regression in 2.14 that made stub! (with an implicit -receiver) return a test double rather than stub a method (Myron Marston).

      -
    -

    2.14.1 / 2013-07-07

    +
      +
    • Fix as_null_object doubles so that they return nil from to_ary +(Jon Rowe).
    • +
    • Fix regression in 2.14 that made stub! (with an implicit receiver) +return a test double rather than stub a method (Myron Marston).
    • +
    + +

    2.14.1 / 2013-07-07

    -

    Full -Changelog

    +

    Full Changelog

    Bug Fixes:

    -
    • -

      Restore double.as_null_object behavior from 2.13 and earlier: -a double's nullness persisted between examples in earlier examples. -While this is not an intended use case (test doubles are meant to live for -only one example), we don't want to break behavior users rely on in a -minor relase. This will be deprecated in 2.99 and removed in 3.0. (Myron -Marston)

      -
    -

    2.14.0 / 2013-07-06

    +
      +
    • Restore double.as_null_object behavior from 2.13 and earlier: a +double's nullness persisted between examples in earlier examples. +While this is not an intended use case (test doubles are meant to live +for only one example), we don't want to break behavior users rely +on in a minor relase. This will be deprecated in 2.99 and removed +in 3.0. (Myron Marston)
    • +
    -

    Full -Changelog

    +

    2.14.0 / 2013-07-06

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Document test spies in the readme. (Adarsh Pandit)

      -
    • -

      Add an array_including matcher. (Sam Phippen)

      -
    • -

      Add a syntax-agnostic API for mocking or stubbing a method. This is -intended for use by libraries such as rspec-rails that need to mock or -stub a method, and work regardless of the syntax the user has configured -(Paul Annesley, Myron Marston and Sam Phippen).

      -
    + +
      +
    • Document test spies in the readme. (Adarsh Pandit)
    • +
    • Add an array_including matcher. (Sam Phippen)
    • +
    • Add a syntax-agnostic API for mocking or stubbing a method. This is +intended for use by libraries such as rspec-rails that need to mock +or stub a method, and work regardless of the syntax the user has +configured (Paul Annesley, Myron Marston and Sam Phippen).
    • +

    Bug Fixes:

    -
    • -

      Fix double so that it sets up passed stubs correctly -regardless of the configured syntax (Paul Annesley).

      -
    • -

      Allow a block implementation to be used in combination with -and_yield, and_raise, and_return or -and_throw. This got fixed in 2.13.1 but failed to get merged -into master for the 2.14.0.rc1 release (Myron Marston).

      -
    • -

      Marshal.dump does not unnecessarily duplicate objects when -rspec-mocks has not been fully initialized. This could cause errors when -using spork or similar preloading gems (Andy Lindeman).

      -
    - -

    2.14.0.rc1 / 2013-05-27

    - -

    Full -Changelog

    + +
      +
    • Fix double so that it sets up passed stubs correctly regardless of +the configured syntax (Paul Annesley).
    • +
    • Allow a block implementation to be used in combination with +and_yield, and_raise, and_return or and_throw. This got fixed +in 2.13.1 but failed to get merged into master for the 2.14.0.rc1 +release (Myron Marston).
    • +
    • Marshal.dump does not unnecessarily duplicate objects when rspec-mocks has +not been fully initialized. This could cause errors when using spork or +similar preloading gems (Andy Lindeman).
    • +
    + +

    2.14.0.rc1 / 2013-05-27

    + +

    Full Changelog

    Enhancements:

    -
    • -

      Refactor internals so that the mock proxy methods and state are held -outside of the mocked object rather than inside it. This paves the way for -future syntax enhancements and removes the need for some hacky work -arounds for any_instance dup'ing and YAML -serialization, among other things. Note that the code now relies upon -__id__ returning a unique, consistent value for any object -you want to mock or stub (Myron Marston).

      -
    • -

      Add support for test spies. This allows you to verify a message was -received afterwards using the have_received matcher. Note -that you must first stub the method or use a null double. (Joe Ferris and -Joël Quenneville)

      -
    • -

      Make at_least and at_most style receive -expectations print that they were expecting at least or at most some -number of calls, rather than just the number of calls given in the -expectation (Sam Phippen)

      -
    • -

      Make with style receive expectations print the args they were -expecting, and the args that they got (Sam Phippen)

      -
    • -

      Fix some warnings seen under ruby 2.0.0p0 (Sam Phippen).

      -
    • -

      Add a new :expect syntax for message expectations (Myron -Marston and Sam Phippen).

      -
    + +
      +
    • Refactor internals so that the mock proxy methods and state are held +outside of the mocked object rather than inside it. This paves the way +for future syntax enhancements and removes the need for some hacky +work arounds for any_instance dup'ing and YAML serialization, +among other things. Note that the code now relies upon __id__ +returning a unique, consistent value for any object you want to +mock or stub (Myron Marston).
    • +
    • Add support for test spies. This allows you to verify a message +was received afterwards using the have_received matcher. +Note that you must first stub the method or use a null double. +(Joe Ferris and Joël Quenneville)
    • +
    • Make at_least and at_most style receive expectations print that they were +expecting at least or at most some number of calls, rather than just the +number of calls given in the expectation (Sam Phippen)
    • +
    • Make with style receive expectations print the args they were expecting, and +the args that they got (Sam Phippen)
    • +
    • Fix some warnings seen under ruby 2.0.0p0 (Sam Phippen).
    • +
    • Add a new :expect syntax for message expectations +(Myron Marston and Sam Phippen).
    • +

    Bug fixes

    -
    • -

      Fix any_instance so that a frozen object can be -dup'd when methods have been stubbed on that type using -any_instance (Jon Rowe).

      -
    • -

      Fix and_call_original so that it properly raises an -ArgumentError when the wrong number of args are passed (Jon -Rowe).

      -
    • -

      Fix double on 1.9.2 so you can wrap them in an Array using -Array(my_double) (Jon Rowe).

      -
    • -

      Fix stub_const and hide_const to handle constants -that redefine send (Sam Phippen).

      -
    • -

      Fix Marshal.dump extension so that it correctly handles nil. -(Luke Imhoff, Jon Rowe)

      -
    • -

      Fix isolation of allow_message_expectations_on_nil (Jon Rowe)

      -
    • -

      Use inspect to format actual arguments on expectations in failure messages -(#280, Ben Langfeld)

      -
    • -

      Protect against improperly initialised test doubles (#293) (Joseph -Shraibman and Jon Rowe)

      -
    + +
      +
    • Fix any_instance so that a frozen object can be dup'd when methods +have been stubbed on that type using any_instance (Jon Rowe).
    • +
    • Fix and_call_original so that it properly raises an ArgumentError +when the wrong number of args are passed (Jon Rowe).
    • +
    • Fix double on 1.9.2 so you can wrap them in an Array +using Array(my_double) (Jon Rowe).
    • +
    • Fix stub_const and hide_const to handle constants that redefine send +(Sam Phippen).
    • +
    • Fix Marshal.dump extension so that it correctly handles nil. +(Luke Imhoff, Jon Rowe)
    • +
    • Fix isolation of allow_message_expectations_on_nil (Jon Rowe)
    • +
    • Use inspect to format actual arguments on expectations in failure messages (#280, Ben Langfeld)
    • +
    • Protect against improperly initialised test doubles (#293) (Joseph Shraibman and Jon Rowe)
    • +

    Deprecations

    -
    • -

      Deprecate stub and mock as aliases for -double. double is the best term for creating a -test double, and it reduces confusion to have only one term (Michi Huber).

      -
    • -

      Deprecate stub! and unstub! in favor of -stub and unstub (Jon Rowe).

      -
    • -

      Deprecate at_least(0).times and -any_number_of_times (Michi Huber).

      -
    - -

    2.13.1 / 2013-04-06

    - -

    Full -Changelog

    + +
      +
    • Deprecate stub and mock as aliases for double. double is the +best term for creating a test double, and it reduces confusion to +have only one term (Michi Huber).
    • +
    • Deprecate stub! and unstub! in favor of stub and unstub +(Jon Rowe).
    • +
    • Deprecate at_least(0).times and any_number_of_times (Michi Huber).
    • +
    + +

    2.13.1 / 2013-04-06

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Allow a block implementation to be used in combination with -and_yield, and_raise, and_return or -and_throw (Myron Marston).

      -
    -

    2.13.0 / 2013-02-23

    +
      +
    • Allow a block implementation to be used in combination with +and_yield, and_raise, and_return or and_throw (Myron Marston).
    • +
    -

    Full -Changelog

    +

    2.13.0 / 2013-02-23

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Fix bug that caused weird behavior when a method that had previously been -stubbed with multiple return values (e.g. -obj.stub(:foo).and_return(1, 2)) was later mocked with a -single return value (e.g. -obj.should_receive(:foo).once.and_return(1)). (Myron Marston)

      -
    • -

      Fix bug related to a mock expectation for a method that already had -multiple stubs with different with constraints. Previously, -the first stub was used, even though it may not have matched the passed -args. The fix defers this decision until the message is received so that -the proper stub response can be chosen based on the passed arguments -(Myron Marston).

      -
    • -

      Do not call nil? extra times on a mocked object, in case -nil? itself is expected a set number of times (Myron -Marston).

      -
    • -

      Fix missing_default_stub_error message so array args are -handled properly (Myron Marston).

      -
    • -

      Explicitly disallow any_instance.unstub! (Ryan Jones).

      -
    • -

      Fix any_instance stubbing so that it works with -Delegator subclasses (Myron Marston).

      -
    • -

      Fix and_call_original so that it works with -Delegator subclasses (Myron Marston).

      -
    • -

      Fix any_instance.should_not_receive when -any_instance.should_receive is used on the same class in the -same example. Previously it would wrongly report a failure even when the -message was not received (Myron Marston).

      -
    - -

    2.12.2 / 2013-01-27

    - -

    Full -Changelog

    + +
      +
    • Fix bug that caused weird behavior when a method that had +previously been stubbed with multiple return values (e.g. +obj.stub(:foo).and_return(1, 2)) was later mocked with a +single return value (e.g. obj.should_receive(:foo).once.and_return(1)). +(Myron Marston)
    • +
    • Fix bug related to a mock expectation for a method that already had +multiple stubs with different with constraints. Previously, the +first stub was used, even though it may not have matched the passed +args. The fix defers this decision until the message is received so +that the proper stub response can be chosen based on the passed +arguments (Myron Marston).
    • +
    • Do not call nil? extra times on a mocked object, in case nil? +itself is expected a set number of times (Myron Marston).
    • +
    • Fix missing_default_stub_error message so array args are handled +properly (Myron Marston).
    • +
    • Explicitly disallow any_instance.unstub! (Ryan Jones).
    • +
    • Fix any_instance stubbing so that it works with Delegator +subclasses (Myron Marston).
    • +
    • Fix and_call_original so that it works with Delegator subclasses +(Myron Marston).
    • +
    • Fix any_instance.should_not_receive when any_instance.should_receive +is used on the same class in the same example. Previously it would +wrongly report a failure even when the message was not received +(Myron Marston).
    • +
    + +

    2.12.2 / 2013-01-27

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Fix and_call_original to work properly for methods defined on -a module extended onto an object instance (Myron Marston).

      -
    • -

      Fix stub_const with an undefined constnat name to work -properly with constant strings that are prefixed with :: – -and edge case I missed in the bug fix in the 2.12.1 release (Myron -Marston).

      -
    • -

      Ensure method visibility on a partial mock is restored after reseting -method stubs, even on a singleton module (created via extend -self) when the method visibility differs between the instance and -singleton versions (Andy Lindeman).

      -
    - -

    2.12.1 / 2012-12-21

    - -

    Full -Changelog

    + +
      +
    • Fix and_call_original to work properly for methods defined +on a module extended onto an object instance (Myron Marston).
    • +
    • Fix stub_const with an undefined constnat name to work properly +with constant strings that are prefixed with :: -- and edge case +I missed in the bug fix in the 2.12.1 release (Myron Marston).
    • +
    • Ensure method visibility on a partial mock is restored after reseting +method stubs, even on a singleton module (created via extend self) +when the method visibility differs between the instance and singleton +versions (Andy Lindeman).
    • +
    + +

    2.12.1 / 2012-12-21

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Fix any_instance to support and_call_original. -(Myron Marston)

      -
    • -

      Properly restore stubbed aliased methods on rubies that report the -incorrect owner (Myron Marston and Andy Lindeman).

      -
    • -

      Fix hide_const and stub_const with a defined -constnat name to work properly with constant strings that are prefixed -with :: (Myron Marston).

      -
    - -

    2.12.0 / 2012-11-12

    - -

    Full -Changelog

    + +
      +
    • Fix any_instance to support and_call_original. +(Myron Marston)
    • +
    • Properly restore stubbed aliased methods on rubies +that report the incorrect owner (Myron Marston and Andy Lindeman).
    • +
    • Fix hide_const and stub_const with a defined constnat name to +work properly with constant strings that are prefixed with :: (Myron Marston).
    • +
    + +

    2.12.0 / 2012-11-12

    + +

    Full Changelog

    Enhancements

    -
    • -

      and_raise can accept an exception class and message, more -closely matching Kernel#raise (e.g., -foo.stub(:bar).and_raise(RuntimeError, "message")) -(Bas Vodde)

      -
    • -

      Add and_call_original, which will delegate the message to the -original method (Myron Marston).

      -
    + +
      +
    • and_raise can accept an exception class and message, more closely +matching Kernel#raise (e.g., foo.stub(:bar).and_raise(RuntimeError, "message")) +(Bas Vodde)
    • +
    • Add and_call_original, which will delegate the message to the +original method (Myron Marston).
    • +

    Deprecations:

    -
    • -

      Add deprecation warning when using and_return with -should_not_receive (Neha Kumari)

      -
    -

    2.11.3 / 2012-09-19

    +
      +
    • Add deprecation warning when using and_return with should_not_receive +(Neha Kumari)
    • +
    + +

    2.11.3 / 2012-09-19

    -

    Full -Changelog

    +

    Full Changelog

    Bug fixes

    -
    • -

      Fix :transfer_nested_constants option of -stub_const so that it doesn't blow up when there are -inherited constants. (Myron Marston)

      -
    • -

      any_instance stubs can be used on classes that override -Object#method. (Andy Lindeman)

      -
    • -

      Methods stubbed with any_instance are unstubbed after the test -finishes. (Andy Lindeman)

      -
    • -

      Fix confusing error message when calling a mocked class method an extra -time with the wrong arguments (Myron Marston).

      -
    - -

    2.11.2 / 2012-08-11

    - -

    Full -Changelog

    + +
      +
    • Fix :transfer_nested_constants option of stub_const so that it +doesn't blow up when there are inherited constants. (Myron Marston)
    • +
    • any_instance stubs can be used on classes that override Object#method. +(Andy Lindeman)
    • +
    • Methods stubbed with any_instance are unstubbed after the test finishes. +(Andy Lindeman)
    • +
    • Fix confusing error message when calling a mocked class method an +extra time with the wrong arguments (Myron Marston).
    • +
    + +

    2.11.2 / 2012-08-11

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Don't modify dup on classes that don't support -dup (David Chelimsky)

      -
    • -

      Fix any_instance so that it works properly with methods -defined on a superclass. (Daniel Eguzkiza)

      -
    • -

      Fix stub_const so that it works properly for nested constants -that share a name with a top-level constant (e.g. “MyGem::Hash”). (Myron -Marston)

      -
    - -

    2.11.1 / 2012-07-09

    - -

    Full -Changelog

    + +
      +
    • Don't modify dup on classes that don't support dup (David Chelimsky)
    • +
    • Fix any_instance so that it works properly with methods defined on +a superclass. (Daniel Eguzkiza)
    • +
    • Fix stub_const so that it works properly for nested constants that +share a name with a top-level constant (e.g. "MyGem::Hash"). (Myron +Marston)
    • +
    + +

    2.11.1 / 2012-07-09

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Fix should_receive so that when it is called on an -as_null_object double with no implementation, and there is a -previous explicit stub for the same method, the explicit stub remains -(rather than being overridden with the null object -implementation–return self). (Myron Marston)

      -
    -

    2.11.0 / 2012-07-07

    +
      +
    • Fix should_receive so that when it is called on an as_null_object +double with no implementation, and there is a previous explicit stub +for the same method, the explicit stub remains (rather than being +overridden with the null object implementation--return self). (Myron +Marston)
    • +
    -

    Full -Changelog

    +

    2.11.0 / 2012-07-07

    + +

    Full Changelog

    Enhancements

    -
    • -

      Expose ArgumentListMatcher as a formal API

      -
      • -

        supports use by 3rd party mock frameworks like Surrogate

        -
      -
    • -

      Add stub_const API to stub constants for the duration of an -example (Myron Marston).

      -
    + +
      +
    • Expose ArgumentListMatcher as a formal API + +
        +
      • supports use by 3rd party mock frameworks like Surrogate
      • +
    • +
    • Add stub_const API to stub constants for the duration of an +example (Myron Marston).
    • +

    Bug fixes

    -
    • -

      Fix regression of edge case behavior. double.should_receive(:foo) { a -} was causing a NoMethodError when -double.stub(:foo).and_return(a, b) had been setup before -(Myron Marston).

      -
    • -

      Infinite loop generated by using any_instance and -dup. (Sidu Ponnappa @kaiwren)

      -
    • -

      double.should_receive(:foo).at_least(:once).and_return(a) -always returns a even if :foo is already stubbed.

      -
    • -

      Prevent infinite loop when interpolating a null double into a string as an -integer ("%i" % double.as_null_object). (Myron -Marston)

      -
    • -

      Fix should_receive so that null object behavior (e.g. -returning self) is preserved if no implementation is given (Myron -Marston).

      -
    • -

      Fix and_raise so that it raises RuntimeError -rather than Exception by default, just like ruby does. -(Andrew Marshall)

      -
    - -

    2.10.1 / 2012-05-05

    - -

    Full -Changelog

    + +
      +
    • Fix regression of edge case behavior. double.should_receive(:foo) { a } +was causing a NoMethodError when double.stub(:foo).and_return(a, b) +had been setup before (Myron Marston).
    • +
    • Infinite loop generated by using any_instance and dup. (Sidu Ponnappa @kaiwren)
    • +
    • double.should_receive(:foo).at_least(:once).and_return(a) always returns a +even if :foo is already stubbed.
    • +
    • Prevent infinite loop when interpolating a null double into a string +as an integer ("%i" % double.as_null_object). (Myron Marston)
    • +
    • Fix should_receive so that null object behavior (e.g. returning +self) is preserved if no implementation is given (Myron Marston).
    • +
    • Fix and_raise so that it raises RuntimeError rather than +Exception by default, just like ruby does. (Andrew Marshall)
    • +
    + +

    2.10.1 / 2012-05-05

    + +

    Full Changelog

    Bug fixes

    -
    • -

      fix regression of edge case behavior (github.com/rspec/rspec-mocks/issues/132)

      -
      • -

        fixed failure of -object.should_receive(:message).at_least(0).times.and_return -value

        -
      • -

        fixed failure of object.should_not_receive(:message).and_return -value

        -
      -
    - -

    2.10.0 / 2012-05-03

    - -

    Full -Changelog

    + +
      +
    • fix regression of edge case behavior +(https://github.com/rspec/rspec-mocks/issues/132) + +
        +
      • fixed failure of object.should_receive(:message).at_least(0).times.and_return value
      • +
      • fixed failure of object.should_not_receive(:message).and_return value
      • +
    • +
    + +

    2.10.0 / 2012-05-03

    + +

    Full Changelog

    Bug fixes

    -
    • -

      fail fast when an exactly or at_most expectation -is exceeded

      -
    -

    2.9.0 / 2012-03-17

    +
      +
    • fail fast when an exactly or at_most expectation is exceeded
    • +
    -

    Full -Changelog

    +

    2.9.0 / 2012-03-17

    + +

    Full Changelog

    Enhancements

    -
    • -

      Support order constraints across objects (preethiramdev)

      -
    + +
      +
    • Support order constraints across objects (preethiramdev)
    • +

    Bug fixes

    -
    • -

      Allow a as_null_object to be passed to with

      -
    • -

      Pass proc to block passed to stub (Aubrey Rhodes)

      -
    • -

      Initialize child message expectation args to match any args (#109 - -preethiramdev)

      -
    -

    2.8.0 / 2012-01-04

    +
      +
    • Allow a as_null_object to be passed to with
    • +
    • Pass proc to block passed to stub (Aubrey Rhodes)
    • +
    • Initialize child message expectation args to match any args (#109 - +preethiramdev)
    • +
    -

    Full -Changelog

    +

    2.8.0 / 2012-01-04

    + +

    Full Changelog

    No changes for this release. Just releasing with the other rspec gems.

    -

    2.8.0.rc2 / 2011-12-19

    +

    2.8.0.rc2 / 2011-12-19

    -

    Full -Changelog

    +

    Full Changelog

    No changes for this release. Just releasing with the other rspec gems.

    -

    2.8.0.rc1 / 2011-11-06

    +

    2.8.0.rc1 / 2011-11-06

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements

    -
    • -

      Eliminate Ruby warnings (Matijs van Zuijlen)

      -
    -

    2.7.0 / 2011-10-16

    +
      +
    • Eliminate Ruby warnings (Matijs van Zuijlen)
    • +
    + +

    2.7.0 / 2011-10-16

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements

    -
    • -

      Use __send__ rather than send (alextk)

      -
    • -

      Add support for any_instance.stub_chain (Sidu Ponnappa)

      -
    • -

      Add support for any_instance argument matching based on -with (Sidu Ponnappa and Andy Lindeman)

      -
    + +
      +
    • Use __send__ rather than send (alextk)
    • +
    • Add support for any_instance.stub_chain (Sidu Ponnappa)
    • +
    • Add support for any_instance argument matching based on with (Sidu +Ponnappa and Andy Lindeman)
    • +

    Changes

    -
    • -

      Check for failure_message_for_should or -failure_message instead of description to detect -a matcher (Tibor Claassen)

      -
    + +
      +
    • Check for failure_message_for_should or failure_message instead of +description to detect a matcher (Tibor Claassen)
    • +

    Bug fixes

    -
    • -

      pass a hash to any_instance.stub. (Justin Ko)

      -
    • -

      allow to_ary to be called without raising -NoMethodError (Mikhail Dieterle)

      -
    • -

      any_instance properly restores private methods (Sidu Ponnappa)

      -
    -

    2.6.0 / 2011-05-12

    +
      +
    • pass a hash to any_instance.stub. (Justin Ko)
    • +
    • allow to_ary to be called without raising NoMethodError (Mikhail +Dieterle)
    • +
    • any_instance properly restores private methods (Sidu Ponnappa)
    • +
    -

    Full -Changelog

    +

    2.6.0 / 2011-05-12

    + +

    Full Changelog

    Enhancements

    -
    • -

      Add support for any_instance.stub and -any_instance.should_receive (Sidu Ponnappa and Andy Lindeman)

      -
    + +
      +
    • Add support for any_instance.stub and any_instance.should_receive (Sidu +Ponnappa and Andy Lindeman)
    • +

    Bug fixes

    -
    • -

      fix bug in which multiple chains with shared messages ending in hashes -failed to return the correct value

      -
    -

    2.5.0 / 2011-02-05

    +
      +
    • fix bug in which multiple chains with shared messages ending in hashes failed +to return the correct value
    • +
    -

    Full -Changelog

    +

    2.5.0 / 2011-02-05

    + +

    Full Changelog

    Bug fixes

    -
    • -

      message expectation counts now work in combination with a stub (Damian -Nurzynski)

      -
    • -

      fix failure message when message received with incorrect args (Josep M. -Bach)

      -
    -

    2.4.0 / 2011-01-02

    +
      +
    • message expectation counts now work in combination with a stub (Damian +Nurzynski)
    • +
    • fix failure message when message received with incorrect args (Josep M. +Bach)
    • +
    + +

    2.4.0 / 2011-01-02

    -

    Full -Changelog

    +

    Full Changelog

    No functional changes in this release, which was made to align with the rspec-core-2.4.0 release.

    -

    2.3.0 / 2010-12-12

    +

    2.3.0 / 2010-12-12

    -

    Full -Changelog

    +

    Full Changelog

    Bug fixes

    -
    • -

      Fix our Marshal extension so that it does not interfere with objects that -have their own @mock_proxy instance variable. (Myron Marston)

      -
    -

    2.2.0 / 2010-11-28

    +
      +
    • Fix our Marshal extension so that it does not interfere with objects that +have their own @mock_proxy instance variable. (Myron Marston)
    • +
    -

    Full -Changelog

    +

    2.2.0 / 2010-11-28

    + +

    Full Changelog

    Enhancements

    -
    • -

      Added “rspec/mocks/standalone” for exploring the rspec-mocks in irb.

      -
    + +
      +
    • Added "rspec/mocks/standalone" for exploring the rspec-mocks in irb.
    • +

    Bug fix

    -
    • -

      Eliminate warning on splat args without parens (Gioele Barabucci)

      -
    • -

      Fix bug where -obj.should_receive(:foo).with(stub.as_null_object) would pass -with a false positive.

      -
    -

    2.1.0 / 2010-11-07

    +
      +
    • Eliminate warning on splat args without parens (Gioele Barabucci)
    • +
    • Fix bug where obj.should_receive(:foo).with(stub.as_null_object) would pass +with a false positive.
    • +
    -

    Full -Changelog

    +

    2.1.0 / 2010-11-07

    + +

    Full Changelog

    Bug fixes

    -
    • -

      Fix serialization of stubbed object (Josep M Bach)

      -
    -

    2.0.0 / 2010-10-10

    +
      +
    • Fix serialization of stubbed object (Josep M Bach)
    • +
    + +

    2.0.0 / 2010-10-10

    -

    Full -Changelog

    +

    Full Changelog

    -

    2.0.0.rc / 2010-10-05

    +

    2.0.0.rc / 2010-10-05

    -

    Full -Changelog

    +

    Full Changelog

    Enhancements

    -
    • -

      support passing a block to an expectation block (Nicolas Braem)

      -
      • -

        obj.should_receive(:msg) {|&block| ... }

        -
      -
    + +
      +
    • support passing a block to an expectation block (Nicolas Braem) + +
        +
      • obj.should_receive(:msg) {|&block| ... }
      • +
    • +

    Bug fixes

    -
    • -

      Fix YAML serialization of stub (Myron Marston)

      -
    • -

      Fix rdoc rake task (Hans de Graaff)

      -
    -

    2.0.0.beta.22 / 2010-09-12

    +
      +
    • Fix YAML serialization of stub (Myron Marston)
    • +
    • Fix rdoc rake task (Hans de Graaff)
    • +
    -

    Full -Changelog

    +

    2.0.0.beta.22 / 2010-09-12

    + +

    Full Changelog

    Bug fixes

    -
    • -

      fixed regression that broke obj.stub_chain(:a, :b => :c)

      -
    • -

      fixed regression that broke obj.stub_chain(:a, :b) { :c }

      -
    • -

      respond_to? always returns true when using -as_null_object

      -
    + +
      +
    • fixed regression that broke obj.stub_chain(:a, :b => :c)
    • +
    • fixed regression that broke obj.stub_chain(:a, :b) { :c }
    • +
    • respond_to? always returns true when using as_null_object
    • +
    - + - + @@ -56,39 +56,38 @@
    -
    -

    The MIT License (MIT)

    -
    • -

      Copyright © 2012 David Chelimsky, Myron Marston

      -
    • -

      Copyright © 2006 David Chelimsky, The RSpec Development Team

      -
    • -

      Copyright © 2005 Steven Baker

      -
    - -

    Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the “Software”), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions:

    - -

    The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software.

    - -

    THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE.

    +

    The MIT License (MIT)

    + +
      +
    • Copyright © 2012 David Chelimsky, Myron Marston
    • +
    • Copyright © 2006 David Chelimsky, The RSpec Development Team
    • +
    • Copyright © 2005 Steven Baker
    • +
    + +

    Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions:

    + +

    The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software.

    + +

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

    - + - + @@ -56,69 +56,64 @@
    -
    -

    RSpec Mocks

    +

    RSpec Mocks Build Status Code Climate

    -

    rspec-mocks is a test-double framework for rspec with support for method -stubs, fakes, and message expectations on generated test-doubles and real -objects alike.

    +

    rspec-mocks is a test-double framework for rspec with support for method stubs, +fakes, and message expectations on generated test-doubles and real objects +alike.

    -

    Install

    +

    Install

    gem install rspec       # for rspec-core, rspec-expectations, rspec-mocks
     gem install rspec-mocks # for rspec-mocks only
     
    -

    Want to run against the master branch? You'll need to -include the dependent RSpec repos as well. Add the following to your -Gemfile:

    +

    Want to run against the master branch? You'll need to include the dependent +RSpec repos as well. Add the following to your Gemfile:

    -
    %w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
    +
    %w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
       gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
     end
     
    -

    Contributing

    +

    Contributing

    -

    Once you've set up the environment, you'll need to cd into the -working directory of whichever repo you want to work in. From there you can -run the specs and cucumber features, and make patches.

    +

    Once you've set up the environment, you'll need to cd into the working +directory of whichever repo you want to work in. From there you can run the +specs and cucumber features, and make patches.

    -

    NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. -You can treat each RSpec repo as an independent project.

    +

    NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You +can treat each RSpec repo as an independent project.

    -

    For information about contributing to RSpec, please refer to the following -markdown files: * Build details * Code of Conduct * Detailed contributing guide * Development setup guide

    +

    For information about contributing to RSpec, please refer to the following markdown files: +* Build details +* Code of Conduct +* Detailed contributing guide +* Development setup guide

    -

    Test Doubles

    +

    Test Doubles

    A test double is an object that stands in for another object in your system -during a code example. Use the double method, passing in an -optional identifier, to create one:

    +during a code example. Use the double method, passing in an optional identifier, to create one:

    book = double("book")
     
    -

    Most of the time you will want some confidence that your doubles resemble -an existing object in your system. Verifying doubles are provided for this -purpose. If the existing object is available, they will prevent you from -adding stubs and expectations for methods that do not exist or that have an -invalid number of parameters.

    +

    Most of the time you will want some confidence that your doubles resemble an +existing object in your system. Verifying doubles are provided for this +purpose. If the existing object is available, they will prevent you from adding +stubs and expectations for methods that do not exist or that have an invalid +number of parameters.

    book = instance_double("Book", :pages => 250)
     

    Verifying doubles have some clever tricks to enable you to both test in -isolation without your dependencies loaded while still being able to -validate them against real objects. More detail is available in their +isolation without your dependencies loaded while still being able to validate +them against real objects. More detail is available in their documentation.

    -

    Verifying doubles can also accept custom identifiers, just like double(), -e.g.:

    +

    Verifying doubles can also accept custom identifiers, just like double(), e.g.:

    books = []
     books << instance_double("Book", :rspec_book, :pages => 250)
    @@ -127,11 +122,11 @@ 

    Test Doubles

    puts books.inspect # with names, it's clearer which were actually added
    -

    Method Stubs

    +

    Method Stubs

    -

    A method stub is an implementation that returns a pre-determined value. -Method stubs can be declared on test doubles or real objects using the same -syntax. rspec-mocks supports 3 forms for declaring method stubs:

    +

    A method stub is an implementation that returns a pre-determined value. Method +stubs can be declared on test doubles or real objects using the same syntax. +rspec-mocks supports 3 forms for declaring method stubs:

    allow(book).to receive(:title) { "The RSpec Book" }
     allow(book).to receive(:title).and_return("The RSpec Book")
    @@ -146,9 +141,9 @@ 

    Method Stubs

    book = double("book", :title => "The RSpec Book")
     
    -

    The first argument is a name, which is used for documentation and appears -in failure messages. If you don't care about the name, you can leave it -out, making the combined instantiation/stub declaration very terse:

    +

    The first argument is a name, which is used for documentation and appears in +failure messages. If you don't care about the name, you can leave it out, +making the combined instantiation/stub declaration very terse:

    double(:foo => 'bar')
     
    @@ -159,10 +154,9 @@

    Method Stubs

    order.calculate_total_price(double(:price => 1.99), double(:price => 2.99))
     
    -

    Stubbing a chain of methods

    +

    Stubbing a chain of methods

    -

    You can use receive_message_chain in place of -receive to stub a chain of messages:

    +

    You can use receive_message_chain in place of receive to stub a chain of messages:

    allow(double).to receive_message_chain("foo.bar") { :baz }
     allow(double).to receive_message_chain(:foo, :bar => :baz)
    @@ -172,20 +166,13 @@ 

    Stubbing a chain of methods

    double.foo.bar # => :baz
    -

    Chains can be arbitrarily long, which makes it quite painless to violate -the Law of Demeter in violent ways, so you should consider any use of -receive_message_chain a code smell. Even though not all code -smells indicate real problems (think fluent interfaces), -receive_message_chain still results in brittle examples. For -example, if you write allow(foo).to receive_message_chain(:bar, :baz -=> 37) in a spec and then the implementation calls -foo.baz.bar, the stub will not work.

    +

    Chains can be arbitrarily long, which makes it quite painless to violate the Law of Demeter in violent ways, so you should consider any use of receive_message_chain a code smell. Even though not all code smells indicate real problems (think fluent interfaces), receive_message_chain still results in brittle examples. For example, if you write allow(foo).to receive_message_chain(:bar, :baz => 37) in a spec and then the implementation calls foo.baz.bar, the stub will not work.

    -

    Consecutive return values

    +

    Consecutive return values

    When a stub might be invoked more than once, you can provide additional -arguments to and_return. The invocations cycle through the -list. The last value is returned for any subsequent invocations:

    +arguments to and_return. The invocations cycle through the list. The last +value is returned for any subsequent invocations:

    allow(die).to receive(:roll).and_return(1, 2, 3)
     die.roll # => 1
    @@ -200,7 +187,7 @@ 

    Consecutive return values

    allow(team).to receive(:players).and_return([double(:name => "David")])
     
    -

    Message Expectations

    +

    Message Expectations

    A message expectation is an expectation that the test double will receive a message some time before the example ends. If the message is received, the @@ -212,13 +199,13 @@

    Message Expectations

    zipcode.valid?
    -

    Test Spies

    +

    Test Spies

    -

    Verifies the given object received the expected message during the course -of the test. For a message to be verified, the given object must be setup -to spy on it, either by having it explicitly stubbed or by being a null -object double (e.g. double(...).as_null_object). Convenience -methods are provided to easily create null object doubles for this purpose:

    +

    Verifies the given object received the expected message during the course of +the test. For a message to be verified, the given object must be setup to spy +on it, either by having it explicitly stubbed or by being a null object double +(e.g. double(...).as_null_object). Convenience methods are provided to easily +create null object doubles for this purpose:

    spy("invitation") # => same as `double("invitation").as_null_object`
     instance_spy("Invitation") # => same as `instance_double("Invitation").as_null_object`
    @@ -245,9 +232,9 @@ 

    Test Spies

    expect(invitation.accept).to eq(true)
    -

    Note that have_received(...).with(...) is unable to work -properly when passed arguments are mutated after the spy records the -received message. For example, this does not work properly:

    +

    Note that have_received(...).with(...) is unable to work properly when +passed arguments are mutated after the spy records the received message. +For example, this does not work properly:

    greeter = spy("greeter")
     
    @@ -258,47 +245,46 @@ 

    Test Spies

    expect(greeter).to have_received(:greet_with).with("Hello")
    -

    Nomenclature

    +

    Nomenclature

    -

    Mock Objects and Test Stubs

    +

    Mock Objects and Test Stubs

    -

    The names Mock Object and Test Stub suggest specialized Test Doubles. i.e. +

    The names Mock Object and Test Stub suggest specialized Test Doubles. i.e. a Test Stub is a Test Double that only supports method stubs, and a Mock Object is a Test Double that supports message expectations and method stubs.

    There is a lot of overlapping nomenclature here, and there are many variations of these patterns (fakes, spies, etc). Keep in mind that most of -the time we're talking about method-level concepts that are variations -of method stubs and message expectations, and we're applying to them to -one generic kind of object: a Test Double.

    +the time we're talking about method-level concepts that are variations of +method stubs and message expectations, and we're applying to them to one +generic kind of object: a Test Double.

    -

    Test-Specific Extension

    +

    Test-Specific Extension

    -

    a.k.a. Partial Double, a Test-Specific Extension is an extension of a real -object in a system that is instrumented with test-double like behaviour in -the context of a test. This technique is very common in Ruby because we -often see class objects acting as global namespaces for methods. For -example, in Rails:

    +

    a.k.a. Partial Double, a Test-Specific Extension is an extension of a +real object in a system that is instrumented with test-double like +behaviour in the context of a test. This technique is very common in Ruby +because we often see class objects acting as global namespaces for methods. +For example, in Rails:

    person = double("person")
     allow(Person).to receive(:find) { person }
     
    -

    In this case we're instrumenting Person to return the person object -we've defined whenever it receives the find message. We -can also set a message expectation so that the example fails if -find is not called:

    +

    In this case we're instrumenting Person to return the person object we've +defined whenever it receives the find message. We can also set a message +expectation so that the example fails if find is not called:

    person = double("person")
     expect(Person).to receive(:find) { person }
     

    RSpec replaces the method we're stubbing or mocking with its own -test-double-like method. At the end of the example, RSpec verifies any -message expectations, and then restores the original methods.

    +test-double-like method. At the end of the example, RSpec verifies any message +expectations, and then restores the original methods.

    -

    Expecting Arguments

    +

    Expecting Arguments

    expect(double).to receive(:msg).with(*args)
     expect(double).to_not receive(:msg).with(*args)
    @@ -310,18 +296,17 @@ 

    Expecting Arguments

    expect(double).to receive(:msg).with("B", 2, 4)
    -

    Argument Matchers

    +

    Argument Matchers

    -

    Arguments that are passed to with are compared with actual -arguments received using ===. In cases in which you want to specify things -about the arguments rather than the arguments themselves, you can use any -of the matchers that ship with rspec-expectations. They don't all make -syntactic sense (they were primarily designed for use with -RSpec::Expectations), but you are free to create your own custom -RSpec::Matchers.

    +

    Arguments that are passed to with are compared with actual arguments +received using ===. In cases in which you want to specify things about the +arguments rather than the arguments themselves, you can use any of the +matchers that ship with rspec-expectations. They don't all make syntactic +sense (they were primarily designed for use with RSpec::Expectations), but +you are free to create your own custom RSpec::Matchers.

    -

    rspec-mocks also adds some keyword Symbols that you can use to specify -certain kinds of arguments:

    +

    rspec-mocks also adds some keyword Symbols that you can use to +specify certain kinds of arguments:

    expect(double).to receive(:msg).with(no_args)
     expect(double).to receive(:msg).with(any_args)
    @@ -336,7 +321,7 @@ 

    Argument Matchers

    expect(double).to receive(:msg).with(hash_excluding(:a => 5)) # first arg is a hash without a: 5 as one of the key-values
    -

    Receive Counts

    +

    Receive Counts

    expect(double).to receive(:msg).once
     expect(double).to receive(:msg).twice
    @@ -349,7 +334,7 @@ 

    Receive Counts

    expect(double).to receive(:msg).at_most(n).times
    -

    Ordering

    +

    Ordering

    expect(double).to receive(:msg).ordered
     expect(double).to receive(:other_msg).ordered
    @@ -362,17 +347,17 @@ 

    Ordering

    expect(double).to receive(:msg).with("B", 2, 4).ordered
    -

    Setting Responses

    +

    Setting Responses

    Whether you are setting a message expectation or a method stub, you can -tell the object precisely how to respond. The most generic way is to pass a -block to receive:

    +tell the object precisely how to respond. The most generic way is to pass +a block to receive:

    expect(double).to receive(:msg) { value }
     
    -

    When the double receives the msg message, it evaluates the -block and returns the result.

    +

    When the double receives the msg message, it evaluates the block and returns +the result.

    expect(double).to receive(:msg).and_return(value)
     expect(double).to receive(:msg).exactly(3).times.and_return(value1, value2, value3)
    @@ -396,20 +381,20 @@ 

    Setting Responses

    allow(double).to receive(:msg).and_yield(values, to, yield).and_yield(some, other, values, this, time)
    -

    Arbitrary Handling

    +

    Arbitrary Handling

    -

    Once in a while you'll find that the available expectations don't -solve the particular problem you are trying to solve. Imagine that you -expect the message to come with an Array argument that has a specific -length, but you don't care what is in it. You could do this:

    +

    Once in a while you'll find that the available expectations don't solve the +particular problem you are trying to solve. Imagine that you expect the message +to come with an Array argument that has a specific length, but you don't care +what is in it. You could do this:

    expect(double).to receive(:msg) do |arg|
       expect(arg.size).to eq 7
     end
     
    -

    If the method being stubbed itself takes a block, and you need to yield to -it in some special way, you can use this:

    +

    If the method being stubbed itself takes a block, and you need to yield to it +in some special way, you can use this:

    expect(double).to receive(:msg) do |&arg|
       begin
    @@ -420,50 +405,46 @@ 

    Arbitrary Handling

    end
    -

    Delegating to the Original Implementation

    +

    Delegating to the Original Implementation

    -

    When working with a partial mock object, you may occasionally want to set a -message expectation without interfering with how the object responds to the -message. You can use and_call_original to achieve this:

    +

    When working with a partial mock object, you may occasionally +want to set a message expectation without interfering with how +the object responds to the message. You can use and_call_original +to achieve this:

    expect(Person).to receive(:find).and_call_original
     Person.find # => executes the original find method and returns the result
     
    -

    Combining Expectation Details

    +

    Combining Expectation Details

    -

    Combining the message name with specific arguments, receive counts and -responses you can get quite a bit of detail in your expectations:

    +

    Combining the message name with specific arguments, receive counts and responses +you can get quite a bit of detail in your expectations:

    expect(double).to receive(:<<).with("illegal value").once.and_raise(ArgumentError)
     
    -

    While this is a good thing when you really need it, you probably don't -really need it! Take care to specify only the things that matter to the -behavior of your code.

    +

    While this is a good thing when you really need it, you probably don't really +need it! Take care to specify only the things that matter to the behavior of +your code.

    -

    Stubbing and Hiding Constants

    +

    Stubbing and Hiding Constants

    -

    See the mutating -constants README for info on this feature.

    +

    See the mutating constants +README +for info on this feature.

    -

    Use before(:example), not before(:context)

    +

    Use before(:example), not before(:context)

    -

    Stubs in before(:context) are not supported. The reason is -that all stubs and mocks get cleared out after each example, so any stub -that is set in before(:context) would work in the first -example that happens to run in that group, but not for any others.

    +

    Stubs in before(:context) are not supported. The reason is that all stubs and mocks get cleared out after each example, so any stub that is set in before(:context) would work in the first example that happens to run in that group, but not for any others.

    -

    Instead of before(:context), use -before(:example).

    +

    Instead of before(:context), use before(:example).

    -

    Settings mocks or stubs on any instance of a class

    +

    Settings mocks or stubs on any instance of a class

    rspec-mocks provides two methods, allow_any_instance_of and -expect_any_instance_of, that will allow you to stub or mock -any instance of a class. They are used in place of allow or -expect:

    +expect_any_instance_of, that will allow you to stub or mock any instance +of a class. They are used in place of allow or expect:

    allow_any_instance_of(Widget).to receive(:name).and_return("Wibble")
     expect_any_instance_of(Widget).to receive(:name).and_return("Wobble")
    @@ -474,65 +455,50 @@ 

    Settings mocks

    This feature is sometimes useful when working with legacy code, though in general we discourage its use for a number of reasons:

    -
    • -

      The rspec-mocks API is designed for individual object -instances, but this feature operates on entire classes of objects. As a -result there are some semantically confusing edge cases. For example in -expect_any_instance_of(Widget).to receive(:name).twice it -isn't clear whether each specific instance is expected to receive -name twice, or if two receives total are expected. (It's -the former.)

      -
    • -

      Using this feature is often a design smell. It may be that your test is -trying to do too much or that the object under test is too complex.

      -
    • -

      It is the most complicated feature of rspec-mocks, and has -historically received the most bug reports. (None of the core team -actively use it, which doesn't help.)

      -
    - -

    Further Reading

    - -

    There are many different viewpoints about the meaning of mocks and stubs. -If you are interested in learning more, here is some recommended reading:

    - - -

    Also see

    - + +
      +
    • The rspec-mocks API is designed for individual object instances, but this +feature operates on entire classes of objects. As a result there are some +semantically confusing edge cases. For example in +expect_any_instance_of(Widget).to receive(:name).twice it isn't clear +whether each specific instance is expected to receive name twice, or if two +receives total are expected. (It's the former.)
    • +
    • Using this feature is often a design smell. It may be +that your test is trying to do too much or that the object under test is too +complex.
    • +
    • It is the most complicated feature of rspec-mocks, and has historically +received the most bug reports. (None of the core team actively use it, +which doesn't help.)
    • +
    + +

    Further Reading

    + +

    There are many different viewpoints about the meaning of mocks and stubs. If +you are interested in learning more, here is some recommended reading:

    + + + +

    Also see

    + +
    + - + File List diff --git a/source/documentation/3.8/rspec-mocks/frames.html b/source/documentation/3.8/rspec-mocks/frames.html index 6b43491ba..b57c778ad 100644 --- a/source/documentation/3.8/rspec-mocks/frames.html +++ b/source/documentation/3.8/rspec-mocks/frames.html @@ -2,7 +2,7 @@ - Documentation by YARD 0.9.15 + Documentation by YARD 0.9.16 - + - + @@ -56,69 +56,64 @@
    -
    -

    RSpec Mocks

    +

    RSpec Mocks Build Status Code Climate

    -

    rspec-mocks is a test-double framework for rspec with support for method -stubs, fakes, and message expectations on generated test-doubles and real -objects alike.

    +

    rspec-mocks is a test-double framework for rspec with support for method stubs, +fakes, and message expectations on generated test-doubles and real objects +alike.

    -

    Install

    +

    Install

    gem install rspec       # for rspec-core, rspec-expectations, rspec-mocks
     gem install rspec-mocks # for rspec-mocks only
     
    -

    Want to run against the master branch? You'll need to -include the dependent RSpec repos as well. Add the following to your -Gemfile:

    +

    Want to run against the master branch? You'll need to include the dependent +RSpec repos as well. Add the following to your Gemfile:

    -
    %w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
    +
    %w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
       gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
     end
     
    -

    Contributing

    +

    Contributing

    -

    Once you've set up the environment, you'll need to cd into the -working directory of whichever repo you want to work in. From there you can -run the specs and cucumber features, and make patches.

    +

    Once you've set up the environment, you'll need to cd into the working +directory of whichever repo you want to work in. From there you can run the +specs and cucumber features, and make patches.

    -

    NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. -You can treat each RSpec repo as an independent project.

    +

    NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You +can treat each RSpec repo as an independent project.

    -

    For information about contributing to RSpec, please refer to the following -markdown files: * Build details * Code of Conduct * Detailed contributing guide * Development setup guide

    +

    For information about contributing to RSpec, please refer to the following markdown files: +* Build details +* Code of Conduct +* Detailed contributing guide +* Development setup guide

    -

    Test Doubles

    +

    Test Doubles

    A test double is an object that stands in for another object in your system -during a code example. Use the double method, passing in an -optional identifier, to create one:

    +during a code example. Use the double method, passing in an optional identifier, to create one:

    book = double("book")
     
    -

    Most of the time you will want some confidence that your doubles resemble -an existing object in your system. Verifying doubles are provided for this -purpose. If the existing object is available, they will prevent you from -adding stubs and expectations for methods that do not exist or that have an -invalid number of parameters.

    +

    Most of the time you will want some confidence that your doubles resemble an +existing object in your system. Verifying doubles are provided for this +purpose. If the existing object is available, they will prevent you from adding +stubs and expectations for methods that do not exist or that have an invalid +number of parameters.

    book = instance_double("Book", :pages => 250)
     

    Verifying doubles have some clever tricks to enable you to both test in -isolation without your dependencies loaded while still being able to -validate them against real objects. More detail is available in their +isolation without your dependencies loaded while still being able to validate +them against real objects. More detail is available in their documentation.

    -

    Verifying doubles can also accept custom identifiers, just like double(), -e.g.:

    +

    Verifying doubles can also accept custom identifiers, just like double(), e.g.:

    books = []
     books << instance_double("Book", :rspec_book, :pages => 250)
    @@ -127,11 +122,11 @@ 

    Test Doubles

    puts books.inspect # with names, it's clearer which were actually added
    -

    Method Stubs

    +

    Method Stubs

    -

    A method stub is an implementation that returns a pre-determined value. -Method stubs can be declared on test doubles or real objects using the same -syntax. rspec-mocks supports 3 forms for declaring method stubs:

    +

    A method stub is an implementation that returns a pre-determined value. Method +stubs can be declared on test doubles or real objects using the same syntax. +rspec-mocks supports 3 forms for declaring method stubs:

    allow(book).to receive(:title) { "The RSpec Book" }
     allow(book).to receive(:title).and_return("The RSpec Book")
    @@ -146,9 +141,9 @@ 

    Method Stubs

    book = double("book", :title => "The RSpec Book")
     
    -

    The first argument is a name, which is used for documentation and appears -in failure messages. If you don't care about the name, you can leave it -out, making the combined instantiation/stub declaration very terse:

    +

    The first argument is a name, which is used for documentation and appears in +failure messages. If you don't care about the name, you can leave it out, +making the combined instantiation/stub declaration very terse:

    double(:foo => 'bar')
     
    @@ -159,10 +154,9 @@

    Method Stubs

    order.calculate_total_price(double(:price => 1.99), double(:price => 2.99))
     
    -

    Stubbing a chain of methods

    +

    Stubbing a chain of methods

    -

    You can use receive_message_chain in place of -receive to stub a chain of messages:

    +

    You can use receive_message_chain in place of receive to stub a chain of messages:

    allow(double).to receive_message_chain("foo.bar") { :baz }
     allow(double).to receive_message_chain(:foo, :bar => :baz)
    @@ -172,20 +166,13 @@ 

    Stubbing a chain of methods

    double.foo.bar # => :baz
    -

    Chains can be arbitrarily long, which makes it quite painless to violate -the Law of Demeter in violent ways, so you should consider any use of -receive_message_chain a code smell. Even though not all code -smells indicate real problems (think fluent interfaces), -receive_message_chain still results in brittle examples. For -example, if you write allow(foo).to receive_message_chain(:bar, :baz -=> 37) in a spec and then the implementation calls -foo.baz.bar, the stub will not work.

    +

    Chains can be arbitrarily long, which makes it quite painless to violate the Law of Demeter in violent ways, so you should consider any use of receive_message_chain a code smell. Even though not all code smells indicate real problems (think fluent interfaces), receive_message_chain still results in brittle examples. For example, if you write allow(foo).to receive_message_chain(:bar, :baz => 37) in a spec and then the implementation calls foo.baz.bar, the stub will not work.

    -

    Consecutive return values

    +

    Consecutive return values

    When a stub might be invoked more than once, you can provide additional -arguments to and_return. The invocations cycle through the -list. The last value is returned for any subsequent invocations:

    +arguments to and_return. The invocations cycle through the list. The last +value is returned for any subsequent invocations:

    allow(die).to receive(:roll).and_return(1, 2, 3)
     die.roll # => 1
    @@ -200,7 +187,7 @@ 

    Consecutive return values

    allow(team).to receive(:players).and_return([double(:name => "David")])
     
    -

    Message Expectations

    +

    Message Expectations

    A message expectation is an expectation that the test double will receive a message some time before the example ends. If the message is received, the @@ -212,13 +199,13 @@

    Message Expectations

    zipcode.valid?
    -

    Test Spies

    +

    Test Spies

    -

    Verifies the given object received the expected message during the course -of the test. For a message to be verified, the given object must be setup -to spy on it, either by having it explicitly stubbed or by being a null -object double (e.g. double(...).as_null_object). Convenience -methods are provided to easily create null object doubles for this purpose:

    +

    Verifies the given object received the expected message during the course of +the test. For a message to be verified, the given object must be setup to spy +on it, either by having it explicitly stubbed or by being a null object double +(e.g. double(...).as_null_object). Convenience methods are provided to easily +create null object doubles for this purpose:

    spy("invitation") # => same as `double("invitation").as_null_object`
     instance_spy("Invitation") # => same as `instance_double("Invitation").as_null_object`
    @@ -245,9 +232,9 @@ 

    Test Spies

    expect(invitation.accept).to eq(true)
    -

    Note that have_received(...).with(...) is unable to work -properly when passed arguments are mutated after the spy records the -received message. For example, this does not work properly:

    +

    Note that have_received(...).with(...) is unable to work properly when +passed arguments are mutated after the spy records the received message. +For example, this does not work properly:

    greeter = spy("greeter")
     
    @@ -258,47 +245,46 @@ 

    Test Spies

    expect(greeter).to have_received(:greet_with).with("Hello")
    -

    Nomenclature

    +

    Nomenclature

    -

    Mock Objects and Test Stubs

    +

    Mock Objects and Test Stubs

    -

    The names Mock Object and Test Stub suggest specialized Test Doubles. i.e. +

    The names Mock Object and Test Stub suggest specialized Test Doubles. i.e. a Test Stub is a Test Double that only supports method stubs, and a Mock Object is a Test Double that supports message expectations and method stubs.

    There is a lot of overlapping nomenclature here, and there are many variations of these patterns (fakes, spies, etc). Keep in mind that most of -the time we're talking about method-level concepts that are variations -of method stubs and message expectations, and we're applying to them to -one generic kind of object: a Test Double.

    +the time we're talking about method-level concepts that are variations of +method stubs and message expectations, and we're applying to them to one +generic kind of object: a Test Double.

    -

    Test-Specific Extension

    +

    Test-Specific Extension

    -

    a.k.a. Partial Double, a Test-Specific Extension is an extension of a real -object in a system that is instrumented with test-double like behaviour in -the context of a test. This technique is very common in Ruby because we -often see class objects acting as global namespaces for methods. For -example, in Rails:

    +

    a.k.a. Partial Double, a Test-Specific Extension is an extension of a +real object in a system that is instrumented with test-double like +behaviour in the context of a test. This technique is very common in Ruby +because we often see class objects acting as global namespaces for methods. +For example, in Rails:

    person = double("person")
     allow(Person).to receive(:find) { person }
     
    -

    In this case we're instrumenting Person to return the person object -we've defined whenever it receives the find message. We -can also set a message expectation so that the example fails if -find is not called:

    +

    In this case we're instrumenting Person to return the person object we've +defined whenever it receives the find message. We can also set a message +expectation so that the example fails if find is not called:

    person = double("person")
     expect(Person).to receive(:find) { person }
     

    RSpec replaces the method we're stubbing or mocking with its own -test-double-like method. At the end of the example, RSpec verifies any -message expectations, and then restores the original methods.

    +test-double-like method. At the end of the example, RSpec verifies any message +expectations, and then restores the original methods.

    -

    Expecting Arguments

    +

    Expecting Arguments

    expect(double).to receive(:msg).with(*args)
     expect(double).to_not receive(:msg).with(*args)
    @@ -310,18 +296,17 @@ 

    Expecting Arguments

    expect(double).to receive(:msg).with("B", 2, 4)
    -

    Argument Matchers

    +

    Argument Matchers

    -

    Arguments that are passed to with are compared with actual -arguments received using ===. In cases in which you want to specify things -about the arguments rather than the arguments themselves, you can use any -of the matchers that ship with rspec-expectations. They don't all make -syntactic sense (they were primarily designed for use with -RSpec::Expectations), but you are free to create your own custom -RSpec::Matchers.

    +

    Arguments that are passed to with are compared with actual arguments +received using ===. In cases in which you want to specify things about the +arguments rather than the arguments themselves, you can use any of the +matchers that ship with rspec-expectations. They don't all make syntactic +sense (they were primarily designed for use with RSpec::Expectations), but +you are free to create your own custom RSpec::Matchers.

    -

    rspec-mocks also adds some keyword Symbols that you can use to specify -certain kinds of arguments:

    +

    rspec-mocks also adds some keyword Symbols that you can use to +specify certain kinds of arguments:

    expect(double).to receive(:msg).with(no_args)
     expect(double).to receive(:msg).with(any_args)
    @@ -336,7 +321,7 @@ 

    Argument Matchers

    expect(double).to receive(:msg).with(hash_excluding(:a => 5)) # first arg is a hash without a: 5 as one of the key-values
    -

    Receive Counts

    +

    Receive Counts

    expect(double).to receive(:msg).once
     expect(double).to receive(:msg).twice
    @@ -349,7 +334,7 @@ 

    Receive Counts

    expect(double).to receive(:msg).at_most(n).times
    -

    Ordering

    +

    Ordering

    expect(double).to receive(:msg).ordered
     expect(double).to receive(:other_msg).ordered
    @@ -362,17 +347,17 @@ 

    Ordering

    expect(double).to receive(:msg).with("B", 2, 4).ordered
    -

    Setting Responses

    +

    Setting Responses

    Whether you are setting a message expectation or a method stub, you can -tell the object precisely how to respond. The most generic way is to pass a -block to receive:

    +tell the object precisely how to respond. The most generic way is to pass +a block to receive:

    expect(double).to receive(:msg) { value }
     
    -

    When the double receives the msg message, it evaluates the -block and returns the result.

    +

    When the double receives the msg message, it evaluates the block and returns +the result.

    expect(double).to receive(:msg).and_return(value)
     expect(double).to receive(:msg).exactly(3).times.and_return(value1, value2, value3)
    @@ -396,20 +381,20 @@ 

    Setting Responses

    allow(double).to receive(:msg).and_yield(values, to, yield).and_yield(some, other, values, this, time)
    -

    Arbitrary Handling

    +

    Arbitrary Handling

    -

    Once in a while you'll find that the available expectations don't -solve the particular problem you are trying to solve. Imagine that you -expect the message to come with an Array argument that has a specific -length, but you don't care what is in it. You could do this:

    +

    Once in a while you'll find that the available expectations don't solve the +particular problem you are trying to solve. Imagine that you expect the message +to come with an Array argument that has a specific length, but you don't care +what is in it. You could do this:

    expect(double).to receive(:msg) do |arg|
       expect(arg.size).to eq 7
     end
     
    -

    If the method being stubbed itself takes a block, and you need to yield to -it in some special way, you can use this:

    +

    If the method being stubbed itself takes a block, and you need to yield to it +in some special way, you can use this:

    expect(double).to receive(:msg) do |&arg|
       begin
    @@ -420,50 +405,46 @@ 

    Arbitrary Handling

    end
    -

    Delegating to the Original Implementation

    +

    Delegating to the Original Implementation

    -

    When working with a partial mock object, you may occasionally want to set a -message expectation without interfering with how the object responds to the -message. You can use and_call_original to achieve this:

    +

    When working with a partial mock object, you may occasionally +want to set a message expectation without interfering with how +the object responds to the message. You can use and_call_original +to achieve this:

    expect(Person).to receive(:find).and_call_original
     Person.find # => executes the original find method and returns the result
     
    -

    Combining Expectation Details

    +

    Combining Expectation Details

    -

    Combining the message name with specific arguments, receive counts and -responses you can get quite a bit of detail in your expectations:

    +

    Combining the message name with specific arguments, receive counts and responses +you can get quite a bit of detail in your expectations:

    expect(double).to receive(:<<).with("illegal value").once.and_raise(ArgumentError)
     
    -

    While this is a good thing when you really need it, you probably don't -really need it! Take care to specify only the things that matter to the -behavior of your code.

    +

    While this is a good thing when you really need it, you probably don't really +need it! Take care to specify only the things that matter to the behavior of +your code.

    -

    Stubbing and Hiding Constants

    +

    Stubbing and Hiding Constants

    -

    See the mutating -constants README for info on this feature.

    +

    See the mutating constants +README +for info on this feature.

    -

    Use before(:example), not before(:context)

    +

    Use before(:example), not before(:context)

    -

    Stubs in before(:context) are not supported. The reason is -that all stubs and mocks get cleared out after each example, so any stub -that is set in before(:context) would work in the first -example that happens to run in that group, but not for any others.

    +

    Stubs in before(:context) are not supported. The reason is that all stubs and mocks get cleared out after each example, so any stub that is set in before(:context) would work in the first example that happens to run in that group, but not for any others.

    -

    Instead of before(:context), use -before(:example).

    +

    Instead of before(:context), use before(:example).

    -

    Settings mocks or stubs on any instance of a class

    +

    Settings mocks or stubs on any instance of a class

    rspec-mocks provides two methods, allow_any_instance_of and -expect_any_instance_of, that will allow you to stub or mock -any instance of a class. They are used in place of allow or -expect:

    +expect_any_instance_of, that will allow you to stub or mock any instance +of a class. They are used in place of allow or expect:

    allow_any_instance_of(Widget).to receive(:name).and_return("Wibble")
     expect_any_instance_of(Widget).to receive(:name).and_return("Wobble")
    @@ -474,65 +455,50 @@ 

    Settings mocks

    This feature is sometimes useful when working with legacy code, though in general we discourage its use for a number of reasons:

    -
    • -

      The rspec-mocks API is designed for individual object -instances, but this feature operates on entire classes of objects. As a -result there are some semantically confusing edge cases. For example in -expect_any_instance_of(Widget).to receive(:name).twice it -isn't clear whether each specific instance is expected to receive -name twice, or if two receives total are expected. (It's -the former.)

      -
    • -

      Using this feature is often a design smell. It may be that your test is -trying to do too much or that the object under test is too complex.

      -
    • -

      It is the most complicated feature of rspec-mocks, and has -historically received the most bug reports. (None of the core team -actively use it, which doesn't help.)

      -
    - -

    Further Reading

    - -

    There are many different viewpoints about the meaning of mocks and stubs. -If you are interested in learning more, here is some recommended reading:

    - - -

    Also see

    - + +
      +
    • The rspec-mocks API is designed for individual object instances, but this +feature operates on entire classes of objects. As a result there are some +semantically confusing edge cases. For example in +expect_any_instance_of(Widget).to receive(:name).twice it isn't clear +whether each specific instance is expected to receive name twice, or if two +receives total are expected. (It's the former.)
    • +
    • Using this feature is often a design smell. It may be +that your test is trying to do too much or that the object under test is too +complex.
    • +
    • It is the most complicated feature of rspec-mocks, and has historically +received the most bug reports. (None of the core team actively use it, +which doesn't help.)
    • +
    + +

    Further Reading

    + +

    There are many different viewpoints about the meaning of mocks and stubs. If +you are interested in learning more, here is some recommended reading:

    + + + +

    Also see

    + +
    + - + Method List diff --git a/source/documentation/3.8/rspec-mocks/top-level-namespace.html b/source/documentation/3.8/rspec-mocks/top-level-namespace.html index ced76eefe..dc51787c0 100644 --- a/source/documentation/3.8/rspec-mocks/top-level-namespace.html +++ b/source/documentation/3.8/rspec-mocks/top-level-namespace.html @@ -5,13 +5,13 @@ Top Level Namespace - — Documentation by YARD 0.9.15 + — Documentation by YARD 0.9.16 - + - + - + - + @@ -126,8 +126,7 @@

    -
    -

    Tells the object to respond to all messages.

    +

    Tells the object to respond to all messages.

    @@ -150,8 +149,7 @@

    -
    -

    Returns true if this object has received as_null_object.

    +

    Returns true if this object has received as_null_object.

    @@ -174,9 +172,7 @@

    -
    -

    Sets and expectation that this object should not receive a message -during this example.

    +

    Sets and expectation that this object should not receive a message during this example.

    @@ -199,9 +195,7 @@

    -
    -

    Sets an expectation that this object should receive a message before the -end of the example.

    +

    Sets an expectation that this object should receive a message before the end of the example.

    @@ -224,8 +218,7 @@

    -
    -

    Tells the object to respond to the message with the specified value.

    +

    Tells the object to respond to the message with the specified value.

    @@ -248,8 +241,7 @@

    -
    -

    Stubs a chain of methods.

    +

    Stubs a chain of methods.

    @@ -272,8 +264,7 @@

    -
    -

    Removes a stub.

    +

    Removes a stub.

    @@ -324,15 +315,13 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    - -

    Tells the object to respond to all messages. If specific stub values are -declared, they'll work as expected. If not, the receiver is returned.

    +

    Tells the object to respond to all messages. If specific stub values +are declared, they'll work as expected. If not, the receiver is +returned.

    @@ -371,13 +360,10 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    -

    Returns true if this object has received as_null_object

    @@ -414,8 +400,7 @@

    - -

    Sets and expectation that this object should not receive a message +

    Sets and expectation that this object should not receive a message during this example.

    @@ -462,15 +447,12 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    - -

    Sets an expectation that this object should receive a message before the -end of the example.

    +

    Sets an expectation that this object should receive a message before +the end of the example.

    @@ -527,13 +509,10 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    -

    Tells the object to respond to the message with the specified value.

    @@ -596,22 +575,19 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    -

    Stubs a chain of methods.

    -

    Warning:

    +

    Warning:

    -

    Chains can be arbitrarily long, which makes it quite painless to violate -the Law of Demeter in violent ways, so you should consider any use of -stub_chain a code smell. Even though not all code smells -indicate real problems (think fluent interfaces), stub_chain -still results in brittle examples. For example, if you write +

    Chains can be arbitrarily long, which makes it quite painless to +violate the Law of Demeter in violent ways, so you should consider any +use of stub_chain a code smell. Even though not all code smells +indicate real problems (think fluent interfaces), stub_chain still +results in brittle examples. For example, if you write foo.stub_chain(:bar, :baz => 37) in a spec and then the implementation calls foo.baz.bar, the stub will not work.

    @@ -675,20 +651,17 @@

    Note: -
    -

    This is only available when you have enabled the should -syntax.

    +

    This is only available when you have enabled the should syntax.

    -

    Removes a stub. On a double, the object will no longer respond to -message. On a real object, the original method (if it exists) -is restored.

    +message. On a real object, the original method (if it exists) is +restored.

    This is rarely used, but can be useful when a stub is set up during a -shared before hook for the common case, but you want to -replace it for a special case.

    +shared before hook for the common case, but you want to replace it +for a special case.

    @@ -718,9 +691,9 @@

    - + - + @@ -82,7 +82,7 @@
    Defined in:
    lib/rspec-rails.rb,
    - lib/rspec/rails/version.rb,
    lib/rspec/rails/adapters.rb,
    lib/rspec/rails/matchers.rb,
    lib/rspec/rails/view_assigns.rb,
    lib/rspec/rails/configuration.rb,
    lib/rspec/rails/feature_check.rb,
    lib/rspec/rails/active_record.rb,
    lib/rspec/rails/view_rendering.rb,
    lib/rspec/rails/fixture_support.rb,
    lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/view_path_builder.rb,
    lib/rspec/rails/view_spec_methods.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/file_fixture_support.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/have_http_status.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/matchers/routing_matchers.rb,
    lib/rspec/rails/example/view_example_group.rb,
    lib/rspec/rails/fixture_file_upload_support.rb,
    lib/rspec/rails/example/model_example_group.rb,
    lib/rspec/rails/example/rails_example_group.rb,
    lib/rspec/rails/example/system_example_group.rb,
    lib/rspec/rails/example/helper_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/feature_example_group.rb,
    lib/rspec/rails/example/routing_example_group.rb,
    lib/rspec/rails/example/request_example_group.rb,
    lib/rspec/rails/example/controller_example_group.rb
    + lib/rspec/rails/version.rb,
    lib/rspec/rails/adapters.rb,
    lib/rspec/rails/matchers.rb,
    lib/rspec/rails/view_assigns.rb,
    lib/rspec/rails/feature_check.rb,
    lib/rspec/rails/configuration.rb,
    lib/rspec/rails/active_record.rb,
    lib/rspec/rails/view_rendering.rb,
    lib/rspec/rails/fixture_support.rb,
    lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/view_spec_methods.rb,
    lib/rspec/rails/view_path_builder.rb,
    lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/file_fixture_support.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/routing_matchers.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/matchers/have_http_status.rb,
    lib/rspec/rails/example/view_example_group.rb,
    lib/rspec/rails/fixture_file_upload_support.rb,
    lib/rspec/rails/example/model_example_group.rb,
    lib/rspec/rails/example/rails_example_group.rb,
    lib/rspec/rails/example/helper_example_group.rb,
    lib/rspec/rails/example/system_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/request_example_group.rb,
    lib/rspec/rails/example/routing_example_group.rb,
    lib/rspec/rails/example/feature_example_group.rb,
    lib/rspec/rails/example/controller_example_group.rb

    @@ -124,9 +124,9 @@

    Overview

    - + - + @@ -82,7 +82,7 @@
    Defined in:
    lib/rspec-rails.rb,
    - lib/rspec/rails/version.rb,
    lib/rspec/rails/adapters.rb,
    lib/rspec/rails/matchers.rb,
    lib/rspec/rails/view_assigns.rb,
    lib/rspec/rails/configuration.rb,
    lib/rspec/rails/feature_check.rb,
    lib/rspec/rails/active_record.rb,
    lib/rspec/rails/view_rendering.rb,
    lib/rspec/rails/fixture_support.rb,
    lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/view_path_builder.rb,
    lib/rspec/rails/view_spec_methods.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/file_fixture_support.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/have_http_status.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/matchers/routing_matchers.rb,
    lib/rspec/rails/example/view_example_group.rb,
    lib/rspec/rails/fixture_file_upload_support.rb,
    lib/rspec/rails/example/model_example_group.rb,
    lib/rspec/rails/example/rails_example_group.rb,
    lib/rspec/rails/example/system_example_group.rb,
    lib/rspec/rails/example/helper_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/feature_example_group.rb,
    lib/rspec/rails/example/routing_example_group.rb,
    lib/rspec/rails/example/request_example_group.rb,
    lib/rspec/rails/example/controller_example_group.rb
    + lib/rspec/rails/version.rb,
    lib/rspec/rails/adapters.rb,
    lib/rspec/rails/matchers.rb,
    lib/rspec/rails/view_assigns.rb,
    lib/rspec/rails/feature_check.rb,
    lib/rspec/rails/configuration.rb,
    lib/rspec/rails/active_record.rb,
    lib/rspec/rails/view_rendering.rb,
    lib/rspec/rails/fixture_support.rb,
    lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/view_spec_methods.rb,
    lib/rspec/rails/view_path_builder.rb,
    lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/file_fixture_support.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/routing_matchers.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/example/job_example_group.rb,
    lib/rspec/rails/matchers/have_http_status.rb,
    lib/rspec/rails/example/view_example_group.rb,
    lib/rspec/rails/fixture_file_upload_support.rb,
    lib/rspec/rails/example/model_example_group.rb,
    lib/rspec/rails/example/rails_example_group.rb,
    lib/rspec/rails/example/helper_example_group.rb,
    lib/rspec/rails/example/system_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/mailer_example_group.rb,
    lib/rspec/rails/example/request_example_group.rb,
    lib/rspec/rails/example/routing_example_group.rb,
    lib/rspec/rails/example/feature_example_group.rb,
    lib/rspec/rails/example/controller_example_group.rb
    @@ -133,16 +133,16 @@

    Constant Summary

    {
    -  :controller => %w[spec controllers],
    -  :helper     => %w[spec helpers],
    -  :job        => %w[spec jobs],
    -  :mailer     => %w[spec mailers],
    -  :model      => %w[spec models],
    -  :request    => %w[spec (requests|integration|api)],
    -  :routing    => %w[spec routing],
    -  :view       => %w[spec views],
    -  :feature    => %w[spec features],
    -  :system     => %w[spec system]
    +  :controller => %w[spec controllers],
    +  :helper     => %w[spec helpers],
    +  :job        => %w[spec jobs],
    +  :mailer     => %w[spec mailers],
    +  :model      => %w[spec models],
    +  :request    => %w[spec (requests|integration|api)],
    +  :routing    => %w[spec routing],
    +  :view       => %w[spec views],
    +  :feature    => %w[spec features],
    +  :system     => %w[spec system]
     }
    Assertions = @@ -530,9 +530,9 @@

    - + - + @@ -124,9 +124,9 @@

    Overview

    - + - + @@ -124,9 +124,9 @@

    Overview

    - + - + @@ -547,9 +547,9 @@

    - + - + @@ -402,9 +402,9 @@

    - + - + @@ -265,9 +265,9 @@

    - + - + @@ -252,9 +252,9 @@

    - + - + @@ -155,9 +155,9 @@

    Overview

    - + - + @@ -167,9 +167,9 @@

    Overview

    - + - + @@ -188,9 +188,9 @@

    - + - + @@ -82,7 +82,7 @@
    Defined in:
    lib/rspec/rails/matchers.rb,
    - lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/have_http_status.rb,
    lib/rspec/rails/matchers/routing_matchers.rb
    + lib/rspec/rails/matchers/be_a_new.rb,
    lib/rspec/rails/matchers/be_valid.rb,
    lib/rspec/rails/matchers/active_job.rb,
    lib/rspec/rails/matchers/redirect_to.rb,
    lib/rspec/rails/matchers/have_rendered.rb,
    lib/rspec/rails/matchers/be_new_record.rb,
    lib/rspec/rails/matchers/routing_matchers.rb,
    lib/rspec/rails/matchers/have_http_status.rb
    @@ -705,9 +705,9 @@

    - + - + @@ -112,9 +112,9 @@

    Overview

    - + - + @@ -224,9 +224,9 @@

    - + - + @@ -500,9 +500,9 @@

    - + - + @@ -733,9 +733,9 @@

    - + - + @@ -624,9 +624,9 @@

    - + - + @@ -630,9 +630,9 @@

    - + - + @@ -200,9 +200,9 @@

    - + - + @@ -206,9 +206,9 @@

    - + - + @@ -307,9 +307,9 @@

    - + - + @@ -319,7 +319,7 @@

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -363,7 +363,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -407,7 +407,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -451,7 +451,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -495,7 +495,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -539,7 +539,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -583,7 +583,7 @@ 

# File 'lib/rspec/rails/matchers/routing_matchers.rb', line 116
 
-%w[get post put patch delete options head].each do |method|
+%w[get post put patch delete options head].each do |method|
   define_method method do |path|
     { method.to_sym => path }
   end
@@ -598,9 +598,9 @@ 

- + - + @@ -154,9 +154,9 @@

Overview

- + - + @@ -146,9 +146,9 @@

Overview

- + - + @@ -126,9 +126,9 @@

Overview

- + - + @@ -259,9 +259,9 @@

- + - + @@ -236,9 +236,9 @@

- + - + @@ -208,9 +208,9 @@

- + - + @@ -368,9 +368,9 @@

- + - + @@ -130,9 +130,9 @@

Constant Summary

- + - + @@ -280,9 +280,9 @@

- + - + @@ -186,9 +186,9 @@

Methods included from - Generated on Sat Aug 4 13:02:00 2018 by + Generated on Fri Sep 14 00:02:14 2018 by yard - 0.8.7.6 (ruby-2.4.2). + 0.8.7.6 (ruby-2.5.1). - + - + @@ -576,9 +576,9 @@

- + - + @@ -293,9 +293,9 @@

- + - + @@ -305,9 +305,9 @@

- + - + @@ -283,9 +283,9 @@

- + - + @@ -324,9 +324,9 @@

- + - + @@ -66,16 +66,19 @@

File Listing

@@ -133,9 +136,9 @@

Namespace Listing A-Z

  • - ClassMethods + ClassMethods - (RSpec::Rails::ViewRendering) + (RSpec::Rails::RoutingExampleGroup)
  • @@ -154,9 +157,9 @@

    Namespace Listing A-Z

  • - ClassMethods + ClassMethods - (RSpec::Rails::RoutingExampleGroup) + (RSpec::Rails::ViewRendering)
  • @@ -463,9 +466,9 @@

    Namespace Listing A-Z

    + - + Class List diff --git a/source/documentation/3.8/rspec-rails/css/common.css b/source/documentation/3.8/rspec-rails/css/common.css new file mode 100644 index 000000000..cf25c4523 --- /dev/null +++ b/source/documentation/3.8/rspec-rails/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/source/documentation/3.8/rspec-rails/css/full_list.css b/source/documentation/3.8/rspec-rails/css/full_list.css new file mode 100644 index 000000000..c918cf190 --- /dev/null +++ b/source/documentation/3.8/rspec-rails/css/full_list.css @@ -0,0 +1,57 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; } +#full_list ul { padding: 0; } +#full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; } +#noresults { padding: 7px 12px; } +#content.insearch #noresults { margin-left: 7px; } +ul.collapsed ul, ul.collapsed li { display: none; } +ul.collapsed.search_uncollapsed { display: block; } +ul.collapsed.search_uncollapsed li { display: list-item; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } +li:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a:link, a:visited { text-decoration: none; color: #05a; } +li.clicked { background: #05a; color: #ccc; } +li.clicked a:link, li.clicked a:visited { color: #eee; } +li.clicked a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; -moz-border-radius: 3px; -webkit-border-radius: 3px; } +#nav { margin-left: 10px; font-size: 0.9em; display: none; color: #aaa; } +#nav a:link, #nav a:visited { color: #358; } +#nav a:hover { background: transparent; color: #5af; } +.frames #nav span:after { content: ' | '; } +.frames #nav span:last-child:after { content: ''; } + +.frames #content h1 { margin-top: 0; } +.frames li { white-space: nowrap; cursor: normal; } +.frames li small { display: block; font-size: 0.8em; } +.frames li small:before { content: ""; } +.frames li small:after { content: ""; } +.frames li small.search_info { display: none; } +.frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +.frames #content.insearch #search { background-position: center right; } +.frames #search input { width: 110px; } +.frames #nav { display: block; } + +#full_list.insearch li { display: none; } +#full_list.insearch li.found { display: list-item; padding-left: 10px; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/source/documentation/3.8/rspec-rails/css/rspec.css b/source/documentation/3.8/rspec-rails/css/rspec.css new file mode 100644 index 000000000..b2fb819aa --- /dev/null +++ b/source/documentation/3.8/rspec-rails/css/rspec.css @@ -0,0 +1,20 @@ +.notetag { + background-color: #FFE5E5; +} + +code { + background-color: #F0F0F0; + padding: 0 2px 0 2px; +} + +.deprecated code { + background-color: #FFA8A8; +} + +.summary_desc code { + background-color: #F0F0F0; +} + +.notetag code { + background-color: #FFA8A8; +} diff --git a/source/documentation/3.8/rspec-rails/css/style.css b/source/documentation/3.8/rspec-rails/css/style.css new file mode 100644 index 000000000..96307c561 --- /dev/null +++ b/source/documentation/3.8/rspec-rails/css/style.css @@ -0,0 +1,339 @@ +body { + padding: 0 20px; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; +} +body.frames { padding: 0 5px; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; +} +h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right; } +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link, .docstring .object_link { font-family: monospace; } +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
      */ +#filecontents li > p, .docstring li > p { margin: 0px; } +#filecontents ul, .docstring ul { padding-left: 20px; } +/* style for
      */ +#filecontents dl, .docstring dl { border: 1px solid #ccc; } +#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; } +#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; } +#filecontents dd > p, .docstring dd > p { margin: 0px; } + +.note { + color: #222; + -moz-border-radius: 3px; -webkit-border-radius: 3px; + background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px; + display: block; +} +.note.todo { background: #ffffc5; border-color: #ececaa; } +.note.returns_void { background: #efefef; } +.note.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.private { background: #ffffc5; border-color: #ececaa; } +.note.title { padding: 1px 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; } +.summary_signature + .note.title { margin-left: 7px; } +h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; } +.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; } +.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.private { background: #d5d5d5; border-color: #c5c5c5; } +.note.title.not_defined_here { background: transparent; border: none; font-style: italic; } +.discussion .note { margin-top: 6px; } +.discussion .note:first-child { margin-top: 0; } + +h3.inherited { + font-style: italic; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + padding: 0; + margin: 0; + margin-top: 12px; + margin-bottom: 3px; + font-size: 13px; +} +p.inherited { + padding: 0; + margin: 0; + margin-left: 25px; +} + +#filecontents dl.box, dl.box { + border: 0; + width: 520px; + font-size: 1em; +} +#filecontents dl.box dt, dl.box dt { + float: left; + display: block; + width: 100px; + margin: 0; + text-align: right; + font-weight: bold; + background: transparent; + border: 1px solid #aaa; + border-width: 1px 0px 0px 1px; + padding: 6px 0; + padding-right: 10px; +} +#filecontents dl.box dd, dl.box dd { + float: left; + display: block; + width: 380px; + margin: 0; + padding: 6px 0; + padding-right: 20px; + border: 1px solid #aaa; + border-width: 1px 1px 0 0; +} +#filecontents dl.box .last, dl.box .last { + border-bottom: 1px solid #aaa; +} +#filecontents dl.box .r1, dl.box .r1 { background: #eee; } + +ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; } +.index_inline_list { padding-left: 0; font-size: 1.1em; } +.index_inline_list li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; } + +dl.constants { margin-left: 40px; } +dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } +dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; } + +.summary_desc { margin-left: 32px; display: block; font-family: sans-serif; } +.summary_desc tt { font-size: 0.9em; } +dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; } +dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; } +dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; } +dl.constants .discussion *:first-child { margin-top: 0; } +dl.constants .discussion *:last-child { margin-bottom: 0; } + +.method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; } +.method_details.first { border: 0; } +p.signature, h3.signature { + font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace; + padding: 6px 10px; margin-top: 18px; + background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +p.signature tt, +h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; } +p.signature .overload, +h3.signature .overload { display: block; } +p.signature .extras, +h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; } +p.signature .not_defined_here, +h3.signature .not_defined_here, +p.signature .aliases, +h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; } +p.signature .aliases .names, +h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; } + +.tags .tag_title { font-size: 1em; margin-bottom: 0; font-weight: bold; } +.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; } +.tags ul li { margin-bottom: 3px; } +.tags ul .name { font-family: monospace; font-weight: bold; } +.tags ul .note { padding: 3px 6px; } +.tags { margin-bottom: 12px; } + +.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; } +.tags .examples .inline p { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; } + +.tags .overload .overload_item { list-style: none; margin-bottom: 25px; } +.tags .overload .overload_item .signature { + padding: 2px 8px; + background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; } +.tags .overload .docstring { margin-top: 15px; } + +.defines { display: none; } + +#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; } + +.showSource { font-size: 0.9em; } +.showSource a:link, .showSource a:visited { text-decoration: none; color: #666; } + +#content a:link, #content a:visited { text-decoration: none; color: #05a; } +#content a:hover { background: #ffffa5; } +div.docstring, p.docstring { margin-right: 6em; } + +ul.summary { + list-style: none; + font-family: monospace; + font-size: 1em; + line-height: 1.5em; +} +ul.summary a:link, ul.summary a:visited { + text-decoration: none; font-size: 1.1em; +} +ul.summary li { margin-bottom: 5px; } +.summary .summary_signature { + padding: 1px 10px; + background: #eaeaff; border: 1px solid #dfdfe5; + -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +.summary_signature:hover { background: #eeeeff; cursor: pointer; } +ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;} +ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; } +#content .summary_signature:hover a:link, +#content .summary_signature:hover a:visited { + background: transparent; + color: #48f; +} + +p.inherited a { font-family: monospace; font-size: 0.9em; } +p.inherited { word-spacing: 5px; font-size: 1.2em; } + +p.children { font-size: 1.2em; } +p.children a { font-size: 0.9em; } +p.children strong { font-size: 0.8em; } +p.children strong.modules { padding-left: 5px; } + +ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; } +ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; } +ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; } +ul.fullTree li:first-child { padding-top: 0; background: transparent; } +ul.fullTree li:last-child { padding-bottom: 0; } +.showAll ul.fullTree { display: block; } +.showAll .inheritName { display: none; } + +#search { position: absolute; right: 14px; top: 0px; } +#search a:link, #search a:visited { + display: block; float: left; margin-right: 4px; + padding: 8px 10px; text-decoration: none; color: #05a; + border: 1px solid #d8d8e5; + -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px; + -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px; + background: #eaf0ff; + -webkit-box-shadow: -1px 1px 3px #ddd; +} +#search a:hover { background: #f5faff; color: #06b; } +#search a.active { + background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457; + -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; + -webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px; +} +#search a.inactive { color: #999; } +.frames #search { display: none; } +.inheritanceTree, .toggleDefines { float: right; } + +#menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; } +#menu .title, #menu a { font-size: 0.7em; } +#menu .title a { font-size: 1em; } +#menu .title { color: #555; } +#menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; } +#menu a:hover { color: #05a; } +#menu .noframes { display: inline; } +.frames #menu .noframes { display: inline; float: right; } + +#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; } +#footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; } +#footer a:hover { color: #05a; } + +#listing ul.alpha { font-size: 1.1em; } +#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; } +#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; } +#listing ul.alpha ul { margin: 0; padding-left: 15px; } +#listing ul small { color: #666; font-size: 0.7em; } + +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } + +#search_frame { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 36px; + right: 18px; + width: 500px; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + -webkit-box-shadow: -7px 5px 25px #aaa; + -moz-box-shadow: -7px 5px 25px #aaa; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; +} + +#content ul.summary li.deprecated .summary_signature a:link, +#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; } + +#toc { + padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px; + max-width: 300px; + -webkit-box-shadow: -2px 2px 6px #bbb; + -moz-box-shadow: -2px 2px 6px #bbb; + z-index: 5000; + position: relative; + overflow-x: auto; +} +#toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; } +#toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; } +#toc .title { margin: 0; } +#toc ol { padding-left: 1.8em; } +#toc li { font-size: 1.1em; line-height: 1.7em; } +#toc > ol > li { font-size: 1.1em; font-weight: bold; } +#toc ol > ol { font-size: 0.9em; } +#toc ol ol > ol { padding-left: 2.3em; } +#toc ol + li { margin-top: 0.3em; } +#toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; } +#filecontents h1 + #toc.nofloat { margin-top: 0; } + +/* syntax highlighting */ +.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; } +#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; } +#filecontents pre.code, .docstring pre.code { display: block; } +.source_code .lines { padding-right: 12px; color: #555; text-align: right; } +#filecontents pre.code, .docstring pre.code, +.tags pre.example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; } +pre.code { color: #000; } +pre.code .info.file { color: #555; } +pre.code .val { color: #036A07; } +pre.code .tstring_content, +pre.code .heredoc_beg, pre.code .heredoc_end, +pre.code .qwords_beg, pre.code .qwords_end, +pre.code .tstring, pre.code .dstring { color: #036A07; } +pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s, +pre.code .rubyid_to_sym, pre.code .rubyid_to_f, +pre.code .dot + pre.code .id, +pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; } +pre.code .comment { color: #0066FF; } +pre.code .const, pre.code .constant { color: #585CF6; } +pre.code .label, +pre.code .symbol { color: #C5060B; } +pre.code .kw, +pre.code .rubyid_require, +pre.code .rubyid_extend, +pre.code .rubyid_include { color: #0000FF; } +pre.code .ivar { color: #318495; } +pre.code .gvar, +pre.code .rubyid_backref, +pre.code .rubyid_nth_ref { color: #6D79DE; } +pre.code .regexp, .dregexp { color: #036A07; } +pre.code a { border-bottom: 1px dotted #bbf; } diff --git a/source/documentation/3.8/rspec-rails/file.Capybara.html b/source/documentation/3.8/rspec-rails/file.Capybara.html index db08a10d7..6e07d20a6 100644 --- a/source/documentation/3.8/rspec-rails/file.Capybara.html +++ b/source/documentation/3.8/rspec-rails/file.Capybara.html @@ -10,11 +10,11 @@ - + - + - + - + - + @@ -156,9 +156,9 @@

      Upgrading to Capybara-2.0

      - + - + @@ -1310,9 +1310,9 @@

      2.0.0 / 2010-10-10

      - + - + @@ -92,9 +92,9 @@ - + - + @@ -83,7 +83,7 @@

      Installation

      Want to run against the master branch? You'll need to include the dependent RSpec repos as well. Add the following to your Gemfile:

      -
      %w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
      +
      %w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
         gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
       end
       
      @@ -656,9 +656,9 @@

      Feature Requests & Bugs

      + + + + + + + + + + + + + +

      rspec-rails development

      + +

      This documentation is meant for folks contributing the rspec-rails project +itself.

      + +

      Background

      + +

      rspec-rails lives in a complicated ecosystem. We run our specs against multiple +Rails and Ruby versions.

      + +

      Default

      + +

      By default, rspec-rails' test suite will run against the latest stable version +of Rails.

      + +

      Running Tests

      + +
      bundle install --binstubs
      +bin/rake
      +
      + +

      Errors

      + +

      If you receive an error from bundler where constraints cannot be satisfied +for Rails, try removing Gemfile.lock (rm Gemfile.lock) and running bundle +install --binstubs again.

      + +

      This can happen if the Gemfile.lock was generated for a different version of +Rails than you are trying to use now.

      + +

      Changing Rails Version

      + +

      To run the specs against a different version of Rails, use the thor command:

      + +
      bin/thor version:use 3.2.13
      +bin/rake
      +
      +
      + + + + + + + diff --git a/source/documentation/3.8/rspec-rails/file_list.html b/source/documentation/3.8/rspec-rails/file_list.html index 5478c6995..511939058 100644 --- a/source/documentation/3.8/rspec-rails/file_list.html +++ b/source/documentation/3.8/rspec-rails/file_list.html @@ -4,15 +4,15 @@ - + - + - + - + File List @@ -51,16 +51,19 @@

      File List

      diff --git a/source/documentation/3.8/rspec-rails/index.html b/source/documentation/3.8/rspec-rails/index.html index f0281f1d8..b5b9c92ef 100644 --- a/source/documentation/3.8/rspec-rails/index.html +++ b/source/documentation/3.8/rspec-rails/index.html @@ -4,28 +4,28 @@ - File: README + File: README_DEV — Documentation by YARD 0.8.7.6 - + - + - + - + - + @@ -34,7 +34,7 @@