Red.git | docs/coverage/report-data/ | Red-Database.html


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>RaCoCo result: Red::Database</title>
	<link rel="stylesheet"
				href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
				integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
				crossorigin="anonymous">
	<style>
      pre.code::before {
          counter-reset: listing;
      }

      pre.code span {
          counter-increment: listing;
      }

      pre.code span::before {
          content: counter(listing) ". ";
      }

      .coverage-green {
          background-color: #32CD32;
          /*color-blind
          background-color: #00CED1;
          /**/
      }

      .coverage-red {
          background-color: #fa8072;
      }

      .coverage-purple {
          background-color: #9370DB;
      }
	</style>
</head>
<body>
<div class="container">
	<div class="row mt-5 mb-3">
		<div class="col-12">
			<div class="page-header">
				<h1>Red::Database 60%</h1>
			</div>
		</div>
	</div>
	<div class="row justify-content-md-center">
		<div class="col-md-10">
			<pre class="code">
<span class="coverage-green">use Red::Driver;</span>
<span class="coverage-green">unit module Red::Database;</span>
<span class="coverage-no">=head2 Red::Database</span>
<span class="coverage-no"></span>
<span class="coverage-green">proto database(|c) is export { * }</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| Accepts an SQL driver name and parameters and uses them to create</span>
<span class="coverage-no">#| an instance of `Red::Driver` class.</span>
<span class="coverage-no">#| The driver name is used to specify a particular driver from</span>
<span class="coverage-no">#| `Red::Driver::` family of modules, so `SQLite` results in</span>
<span class="coverage-no">#| constructing an instance of `Red::Driver::SQLite` class.</span>
<span class="coverage-no">#| All subsequent attributes after the driver name will be</span>
<span class="coverage-no">#| directly passed to the constructor of the driver.</span>
<span class="coverage-green">multi sub database(Str $type, |c --&gt; Red::Driver) is export {</span>
<span class="coverage-green">    my $driver-name = &quot;Red::Driver::$type&quot;;</span>
<span class="coverage-green">    require ::($driver-name);</span>
<span class="coverage-green">    my Red::Driver $driver = ::($driver-name).new: |c;</span>
<span class="coverage-green">    $driver.auto-register;</span>
<span class="coverage-green">    $driver</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| Accepts an SQL driver name and a database handle, and</span>
<span class="coverage-no">#| creates an instance of `Red::Driver` passing it the handle.</span>
<span class="coverage-red">multi sub database(Str $type, $dbh --&gt; Red::Driver) {</span>
<span class="coverage-red">    my $driver-name = &quot;Red::Driver::$type&quot;;</span>
<span class="coverage-red">    require ::($driver-name);</span>
<span class="coverage-red">    my Red::Driver $driver = ::($driver-name).new: :$dbh;</span>
<span class="coverage-red">    $driver.auto-register;</span>
<span class="coverage-red">    $driver</span>
<span class="coverage-no">}</span>
			</pre>
		</div>
	</div>
</div>
</body>
</html>