forked from rspec/rspec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
114 lines (110 loc) · 41.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9" lang="en"><![endif]-->
<!--[if gt IE 8]<!--><html class="no-js" lang="en"><!--<![endif]--><head><meta charset="UTF-8" /><meta content="width=device-width, initial-scale=1" name="viewport" /><meta content="Upgrading from RSpec 2 to 3" property="og:title" /><meta content="https://rspec.info/upgrading-from-rspec-2/" property="og:url" /><meta content="https://rspec.info/images/logo_ogp.png" property="og:image" /><meta content="summary" name="twitter:card" /><meta content="@rspec" name="twitter:site" /><title>Upgrading from RSpec 2 to 3</title><link href="/stylesheets/pages/upgrading-from-rspec-2.css" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css" /><link href="/blog/feed.xml" rel="alternate" type="application/atom+xml" /></head><body class="upgrading-from-rspec-2"><header><nav><h1><img alt="Logo" src="/images/logo.png" /><a href="/">RSpec</a></h1><input class="hamburger-toggle" type="checkbox" /><div class="hamburger-icon"><div class="bar"></div><div class="bar"></div><div class="bar"></div></div><ul class="menu"><li><a href="/about">About</a></li><li><a href="/documentation">Documentation</a></li><li><a href="/blog">Blog</a></li><li><a href="/upgrading-from-rspec-2">Upgrade</a></li><li><a href="/help">Get Help</a></li><li><a href="/contributing">Contributing</a></li></ul></nav></header><section><article class="upgrade"><h2>Upgrading from RSpec 2</h2><p>RSpec 3 includes many breaking changes, but our hope is to make this the smoothest
major-version gem upgrade you've ever done. To assist with that process, we've developed
RSpec 2.99 in tandem with RSpec 3. Every breaking change in 3.0 has a corresponding
deprecation to 2.99. Rather than just giving you a generic upgrade document that describes
<em>all</em> of the breaking changes (most of which affect very few users!), RSpec 2.99 gives you a
detailed upgrade checklist tailored to your project.</p>
<p>In addition, <a href="https://twitter.com/nkym37">Yuji Nakayama</a> has created <a href="http://yujinakayama.me/transpec/">Transpec</a> – an absolutely amazing tool that can
automatically upgrade most RSpec suites. We've tried it on a few projects and have been <em>amazed</em> at how well it works.</p>
<p>If you use <code>rspec-rails</code> you might want to read the
<a href="https://relishapp.com/rspec/rspec-rails/docs/upgrade">upgrade notes</a>
specific to that gem.</p>
<h2>Step-by-step Instructions</h2><ol><li>Start with a green test suite on RSpec 2.x:<div class="asciinema-video">
<asciinema-player src="/casts/14083.cast" speed="2" data-size="small" id="asciicast-14083" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIjIuMTQuOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJcdTI3OUMgIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIgIix7ImJvbGQiOnRydWUsImZnIjoyfV0sWyJwbGluZXMgIix7ImJvbGQiOnRydWUsImZnIjo2fV0sWyJnaXQ6KCIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsicnNwZWMtMy11cGdyYWRlIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIpICIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsiYmluL3JzcGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW4gb3B0aW9uczogaW5jbHVkZSB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkFsbCBleGFtcGxlcyB3ZXJlIGZpbHRlcmVkIG91dDsgaWdub3Jpbmcgezpmb2N1cz0+dHJ1ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXV0=
"/>
</div>
</li><li>Install RSpec 2.99.<div class="asciinema-video">
<asciinema-player src="/casts/14084.cast" speed="3" data-size="small" id="asciicast-14084" poster="data:application/json;base64,W1tbIiAgMSAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJzb3VyY2UgIix7ImZnIjoyNTN9XSxbIidodHRwczovL3J1YnlnZW1zLm9yZyciLHsiZmciOjgyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjoyNTN9XV0sW1siICAyICIseyJiZyI6MjMyLCJmZyI6MTV9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgMyAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyIjIFNwZWNpZnkgeW91ciBnZW0ncyBkZXBlbmRlbmNpZXMgaW4gcGxpbmVzLmdlbXNwZWMiLHsiZmciOjkyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjI1M31dXSxbWyIgIDQgIix7ImJnIjoyMzIsImZnIjoxNX1dLFsiZ2Vtc3BlYyIseyJmZyI6MjUzfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgNSAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjI1M31dXSxbWyIgIDYgIix7ImJnIjoyMzIsImZnIjoxNX1dLFsiZ2VtICIseyJmZyI6MjUzfV0sWyIncWxlc3MnIix7ImZnIjo4Mn1dLFsiLCAiLHsiZmciOjI1M31dLFsiZ2l0Iix7ImZnIjozMH1dLFsiOiAiLHsiZmciOjI1M31dLFsiJ2dpdDovL2dpdGh1Yi5jb20vc2VvbW96L3FsZXNzLmdpdCciLHsiZmciOjgyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjoyNTN9XV0sW1siICA3ICIseyJiZyI6MjMyLCJmZyI6MTV9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgOCAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJnZW0gIix7ImZnIjoyNTN9XSxbIidyc3BlYyciLHsiZmciOjgyfV0sWyIsICIseyJmZyI6MjUzfV0sWyInfj4gMi45OS4wJyIseyJmZyI6ODJ9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6OH1dXSxbWyJ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjh9XV0sW1sifiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjo4fV1dLFtbIkdlbWZpbGUgWytdIExpbmU6OC84WzEwMCVdQ29sOjIxQnVmOiMxWzU3XVsweDM5XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJiZyI6MTUsImJvbGQiOnRydWUsImZnIjowfV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dXQ==
"/>
</div>
</li><li>Check your test suite and ensure it's still green. (It should be, but
we may have made a mistake -- if it breaks anything, please report
a bug!). Now would be a good time to commit.<div class="asciinema-video">
<asciinema-player src="/casts/14085.cast" speed="2" data-size="small" id="asciicast-14085" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJcdTI3MTciLHsiYm9sZCI6dHJ1ZSwiZmciOjN9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjR9XSxbImJpbi9yc3BlYyAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIjIuOTkuMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJcdTI3OUMgIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIgIix7ImJvbGQiOnRydWUsImZnIjoyfV0sWyJwbGluZXMgIix7ImJvbGQiOnRydWUsImZnIjo2fV0sWyJnaXQ6KCIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsicnNwZWMtMy11cGdyYWRlIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIpICIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsiXHUyNzE3Iix7ImJvbGQiOnRydWUsImZnIjozfV0sWyIgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW4gb3B0aW9uczogaW5jbHVkZSB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkFsbCBleGFtcGxlcyB3ZXJlIGZpbHRlcmVkIG91dDsgaWdub3Jpbmcgezpmb2N1cz0+dHJ1ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV1dLFtbIi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXV0=
"/>
</div>
</li><li>You'll notice a bunch of deprecation warnings printed off at the
end of the spec run. These may be truncated since we don't to
spam you with the same deprecation warning over and over again. To
get the full list of deprecations, you can pipe them into a file
by passing the <code>--deprecation-out path/to/file</code> command line option.<div class="asciinema-video">
<asciinema-player src="/casts/14086.cast" speed="2" data-size="small" id="asciicast-14086" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgLS1oZWxwIHwgZ3JlcCBkZXByZWNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgLS0iLHt9XSxbImRlcHJlY2F0aW9uIix7ImJvbGQiOnRydWUsImZnIjoyfV0sWyItb3V0IEZJTEUgICAgICAgV3JpdGUgIix7fV0sWyJkZXByZWNhdGlvbiIseyJib2xkIjp0cnVlLCJmZyI6Mn1dLFsiIHdhcm5pbmdzIHRvIGEgZmlsZSBpbnN0ZWFkIG9mICRzdGRvdXQuICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgLS1kZXByZWNhdGlvbi1vdXQgbG9nL2RlcHJlY2F0aW9ucy5sb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlJ1biBvcHRpb25zOiBpbmNsdWRlIHs6Zm9jdXM9PnRydWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siQWxsIGV4YW1wbGVzIHdlcmUgZmlsdGVyZWQgb3V0OyBpZ25vcmluZyB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dXQ==
"/>
</div>
</li><li>If you want to understand all of what is being deprecated, it's a good
idea to read through the deprecation messages. In some cases, you have
choices -- such as continuing to use the <code>have</code> collection
cardinality matchers via the extracted
<a href="https://github.com/rspec/rspec-collection_matchers">rspec-collection_matchers</a>
gem, or by rewriting the expectation expression to something like
<code>expect(list.size).to eq(3)</code>.</li><li>Install transpec, as it will save you a heap of time. (Note that this need
not go into your <code>Gemfile</code>: you run <code>transpec</code> as a standalone executable
outside the context of your bundle).<div class="asciinema-video">
<asciinema-player src="/casts/14087.cast" speed="6" data-size="small" id="asciicast-14087" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJnZW0gaW5zdGFsbCB0cmFuc3BlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkZldGNoaW5nOiBzbG9wLTMuNi4wLmdlbSAoMTAwJSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJTdWNjZXNzZnVsbHkgaW5zdGFsbGVkIHNsb3AtMy42LjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siRmV0Y2hpbmc6IGFzdC0yLjAuMC5nZW0gKDEwMCUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQgYXN0LTIuMC4wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJGZXRjaGluZzogcGFyc2VyLTIuMi4wLnByZS44LmdlbSAoMTAwJSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siU3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCBwYXJzZXItMi4yLjAucHJlLjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkZldGNoaW5nOiBhc3Ryb2xhYmUtMS4zLjAuZ2VtICgxMDAlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJTdWNjZXNzZnVsbHkgaW5zdGFsbGVkIGFzdHJvbGFiZS0xLjMuMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siRmV0Y2hpbmc6IHJhaW5ib3ctMi4wLjAuZ2VtICgxMDAlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQgcmFpbmJvdy0yLjAuMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dXQ==
"/>
</div>
</li><li>Run transpec on your project. Check <code>transpec --help</code> or
<a href="https://github.com/yujinakayama/transpec#transpec">the README</a>
for a full list of options.<div class="asciinema-video">
<asciinema-player src="/casts/14088.cast" speed="2" data-size="small" id="asciicast-14088" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJ0cmFuc3BlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkNvcHlpbmcgdGhlIHByb2plY3QgZm9yIGR5bmFtaWMgYW5hbHlzaXMuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW5uaW5nIGR5bmFtaWMgYW5hbHlzaXMgd2l0aCBjb21tYW5kIFwiYnVuZGxlIGV4ZWMgcnNwZWNcIi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW4gb3B0aW9uczogaW5jbHVkZSB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkFsbCBleGFtcGxlcyB3ZXJlIGZpbHRlcmVkIG91dDsgaWdub3Jpbmcgezpmb2N1cz0+dHJ1ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV1dLFtbIi4uLi4uIix7ImZnIjoyfV0sWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXV0=
"/>
</div>
</li><li>Run the test suite (it should still be green but it's always good to
check!) and commit.<div class="asciinema-video">
<asciinema-player src="/casts/14089.cast" speed="2" data-size="small" id="asciicast-14089" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJcdTI3MTciLHsiYm9sZCI6dHJ1ZSwiZmciOjN9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjR9XSxbImJpbi9yc3BlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlJ1biBvcHRpb25zOiBpbmNsdWRlIHs6Zm9jdXM9PnRydWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siQWxsIGV4YW1wbGVzIHdlcmUgZmlsdGVyZWQgb3V0OyBpZ25vcmluZyB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLiIseyJmZyI6Mn1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dXQ==
"/>
</div>
</li><li>If there are any remaining deprecation warnings (transpec doesn't quite
handle all of the warnings you may get), deal with them.<div class="asciinema-video">
<asciinema-player src="/casts/14090.cast" speed="2" data-size="small" id="asciicast-14090" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgLS1kZXByZWNhdGlvbi1vdXQgbG9nL2RlcHJlY2F0aW9ucy5sb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlJ1biBvcHRpb25zOiBpbmNsdWRlIHs6Zm9jdXM9PnRydWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siQWxsIGV4YW1wbGVzIHdlcmUgZmlsdGVyZWQgb3V0OyBpZ25vcmluZyB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIseyJmZyI6Mn1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIjE1IGRlcHJlY2F0aW9ucyBsb2dnZWQgdG8gbG9nL2RlcHJlY2F0aW9ucy5sb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siRmluaXNoZWQgaW4gMC45MTI3NiBzZWNvbmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIjI4MyBleGFtcGxlcywgMCBmYWlsdXJlcyIseyJmZyI6Mn1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSYW5kb21pemVkIHdpdGggc2VlZCAxMzgxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJ2aW0gbG9nL2RlcHJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXV0=
"/>
</div>
</li><li>Once you've got a deprecation-free test suite running against RSpec 2.99,
you're ready to upgrade to RSpec 3. Install RSpec 3.<div class="asciinema-video">
<asciinema-player src="/casts/14091.cast" speed="3" data-size="small" id="asciicast-14091" poster="data:application/json;base64,W1tbIiAgMSAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJzb3VyY2UgIix7ImZnIjoyNTN9XSxbIidodHRwczovL3J1YnlnZW1zLm9yZyciLHsiZmciOjgyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjoyNTN9XV0sW1siICAyICIseyJiZyI6MjMyLCJmZyI6MTV9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgMyAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyIjIFNwZWNpZnkgeW91ciBnZW0ncyBkZXBlbmRlbmNpZXMgaW4gcGxpbmVzLmdlbXNwZWMiLHsiZmciOjkyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjI1M31dXSxbWyIgIDQgIix7ImJnIjoyMzIsImZnIjoxNX1dLFsiZ2Vtc3BlYyIseyJmZyI6MjUzfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgNSAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjI1M31dXSxbWyIgIDYgIix7ImJnIjoyMzIsImZnIjoxNX1dLFsiZ2VtICIseyJmZyI6MjUzfV0sWyIncWxlc3MnIix7ImZnIjo4Mn1dLFsiLCAiLHsiZmciOjI1M31dLFsiZ2l0Iix7ImZnIjozMH1dLFsiOiAiLHsiZmciOjI1M31dLFsiJ2dpdDovL2dpdGh1Yi5jb20vc2VvbW96L3FsZXNzLmdpdCciLHsiZmciOjgyfV0sWyJcdTAwQUMiLHsiZmciOjh9XSxbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjoyNTN9XV0sW1siICA3ICIseyJiZyI6MjMyLCJmZyI6MTV9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIiAgOCAiLHsiYmciOjIzMiwiZmciOjE1fV0sWyJnZW0gIix7ImZnIjoyNTN9XSxbIidyc3BlYyciLHsiZmciOjgyfV0sWyIsICIseyJmZyI6MjUzfV0sWyInfj4gMy4wJyIseyJmZyI6ODJ9XSxbIlx1MDBBQyIseyJmZyI6OH1dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6MjUzfV1dLFtbIn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6OH1dXSxbWyJ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjh9XV0sW1sifiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjo4fV1dLFtbIn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6OH1dXSxbWyJ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiZmciOjh9XV0sW1sifiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjo4fV1dLFtbIn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIseyJmZyI6OH1dXSxbWyJHZW1maWxlIFsrXSBMaW5lOjgvOFsxMDAlXUNvbDoyMUJ1ZjojMVszOV1bMHgyN10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHsiYmciOjE1LCJib2xkIjp0cnVlLCJmZyI6MH1dXSxbWyItLSBJTlNFUlQgLS0iLHsiYm9sZCI6dHJ1ZSwiZmciOjI1M31dLFsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7ImZnIjoyNTN9XV1d
"/>
</div>
</li><li>Run your test suite. It should still be green. If anything fails, please
open a GitHub issue -- we consider it a bug! Note that you may still get
a few additional deprecation warnings on RSpec 3 that weren't present on
2.99. This is normal -- there are a few things we couldn't easily deprecate in
2.99 and remove in 3.0, so they trigger deprecations in 3.0 with the plan
to remove them in RSpec 4.<div class="asciinema-video">
<asciinema-player src="/casts/14092.cast" speed="2" data-size="small" id="asciicast-14092" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJcdTI3MTciLHsiYm9sZCI6dHJ1ZSwiZmciOjN9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjR9XSxbImJpbi9yc3BlYyAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIjMuMS43ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJcdTI3OUMgIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIgIix7ImJvbGQiOnRydWUsImZnIjoyfV0sWyJwbGluZXMgIix7ImJvbGQiOnRydWUsImZnIjo2fV0sWyJnaXQ6KCIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsicnNwZWMtMy11cGdyYWRlIix7ImJvbGQiOnRydWUsImZnIjoxfV0sWyIpICIseyJib2xkIjp0cnVlLCJmZyI6NH1dLFsiXHUyNzE3Iix7ImJvbGQiOnRydWUsImZnIjozfV0sWyIgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJiaW4vcnNwZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW4gb3B0aW9uczogaW5jbHVkZSB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkFsbCBleGFtcGxlcyB3ZXJlIGZpbHRlcmVkIG91dDsgaWdub3Jpbmcgezpmb2N1cz0+dHJ1ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV0sWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV1d
"/>
</div>
</li><li>We recommend running <code>transpec</code> a second time. There are some changes that
transpec is only able to make when your project is on RSpec 3.<div class="asciinema-video">
<asciinema-player src="/casts/14093.cast" speed="2" data-size="small" id="asciicast-14093" poster="data:application/json;base64,W1tbIlx1Mjc5QyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIiAiLHsiYm9sZCI6dHJ1ZSwiZmciOjJ9XSxbInBsaW5lcyAiLHsiYm9sZCI6dHJ1ZSwiZmciOjZ9XSxbImdpdDooIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJyc3BlYy0zLXVwZ3JhZGUiLHsiYm9sZCI6dHJ1ZSwiZmciOjF9XSxbIikgIix7ImJvbGQiOnRydWUsImZnIjo0fV0sWyJ0cmFuc3BlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkNvcHlpbmcgdGhlIHByb2plY3QgZm9yIGR5bmFtaWMgYW5hbHlzaXMuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW5uaW5nIGR5bmFtaWMgYW5hbHlzaXMgd2l0aCBjb21tYW5kIFwiYnVuZGxlIGV4ZWMgcnNwZWNcIi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyJSdW4gb3B0aW9uczogaW5jbHVkZSB7OmZvY3VzPT50cnVlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIkFsbCBleGFtcGxlcyB3ZXJlIGZpbHRlcmVkIG91dDsgaWdub3Jpbmcgezpmb2N1cz0+dHJ1ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iLHsiZmciOjJ9XV0sW1siLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV1dLFtbIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIix7ImZnIjoyfV0sWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV0sW1siICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIix7fV1dLFtbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIse31dXSxbWyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLHt9XV1d
"/>
</div>
</li><li>Commit and enjoy using the latest RSpec release!</li></ol></article></section><footer><div>Created with the assistance of Ninefold<img alt="Brutus" src="/images/brutus-half.png" /></div><br /><a href="https://dnsimple.link/resolving-rspec" target="_blank">Resolving with<br /><img alt="DNSimple" style="width:100px;" src="https://cdn.dnsimple.com/assets/resolving-with-us/logo-dark.png" /></a></footer><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-59095215-1', 'auto');
ga('send', 'pageview');
</script>
<script>
var SeedAndDewConfig = {};
(function() {
SeedAndDewConfig['adClass'] = "snd-ad";
/* * * DON'T EDIT BELOW THIS LINE * * */
SeedAndDewConfig['projectId'] = 'ef35b4ec-231e-4950-bd93-4c06fe3b2543';
SeedAndDewConfig['loadStartTime'] = performance.now();
SeedAndDewConfig['apiVersion'] = '2018-05-28'
SeedAndDewConfig['sessionId'] = Math.random().toString(36).substring(2, 15);
var snd = document.createElement('script');
snd.type = 'text/javascript';
snd.async = true;
snd.src = 'https://www.seedanddew.com/static/embed.min.js';
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(snd);
})();
</script>
</body><script src="/javascripts/asciinema-player.js"></script></html>