<!DOCTYPE html>

<html> <head> <meta charset=“UTF-8”>

<title>class EPUBMaker::Producer - review-2.2.0 Documentation</title>

<script type=“text/javascript”>

var rdoc_rel_prefix = "../";
var index_rel_prefix = "../";

</script>

<script src=“../js/jquery.js”></script> <script src=“../js/darkfish.js”></script>

<link href=“../css/fonts.css” rel=“stylesheet”> <link href=“../css/rdoc.css” rel=“stylesheet”>

<body id=“top” role=“document” class=“class”> <nav role=“navigation”>

<div id="project-navigation">
  <div id="home-section" role="region" title="Quick navigation" class="nav-section">
<h2>
  <a href="../index.html" rel="home">Home</a>
</h2>

<div id="table-of-contents-navigation">
  <a href="../table_of_contents.html#pages">Pages</a>
  <a href="../table_of_contents.html#classes">Classes</a>
  <a href="../table_of_contents.html#methods">Methods</a>
</div>

</div>

  <div id="search-section" role="search" class="project-section initially-hidden">
<form action="#" method="get" accept-charset="utf-8">
  <div id="search-field-wrapper">
    <input id="search-field" role="combobox" aria-label="Search"
           aria-autocomplete="list" aria-controls="search-results"
           type="text" name="search" placeholder="Search" spellcheck="false"
           title="Type to search, Up and Down to navigate, Enter to load">
  </div>

  <ul id="search-results" aria-label="Search Results"
      aria-busy="false" aria-expanded="false"
      aria-atomic="false" class="initially-hidden"></ul>
</form>

</div>

</div>

<div id="class-metadata">

  <div id="parent-class-section" class="nav-section">
<h3>Parent</h3>

<p class="link"><a href="../Object.html">Object</a>

</div>

<!-- Method Quickref -->

<div id=“method-list-section” class=“nav-section”>

<h3>Methods</h3>

<ul class="link-list" role="directory">

  <li ><a href="#method-c-load">::load</a>

  <li ><a href="#method-c-new">::new</a>

  <li ><a href="#method-i-call_hook">#call_hook</a>

  <li ><a href="#method-i-colophon">#colophon</a>

  <li ><a href="#method-i-complement">#complement</a>

  <li ><a href="#method-i-container">#container</a>

  <li ><a href="#method-i-cover">#cover</a>

  <li ><a href="#method-i-coverimage">#coverimage</a>

  <li ><a href="#method-i-importImageInfo">#importImageInfo</a>

  <li ><a href="#method-i-import_imageinfo">#import_imageinfo</a>

  <li ><a href="#method-i-isbn_hyphen">#isbn_hyphen</a>

  <li ><a href="#method-i-load">#load</a>

  <li ><a href="#method-i-merge_params">#merge_params</a>

  <li ><a href="#method-i-mimetype">#mimetype</a>

  <li ><a href="#method-i-mytoc">#mytoc</a>

  <li ><a href="#method-i-ncx">#ncx</a>

  <li ><a href="#method-i-opf">#opf</a>

  <li ><a href="#method-i-produce">#produce</a>

  <li ><a href="#method-i-support_legacy_maker">#support_legacy_maker</a>

  <li ><a href="#method-i-titlepage">#titlepage</a>

</ul>

</div>

</div>

</nav>

<main role=“main” aria-labelledby=“class-EPUBMaker::Producer”>

<h1 id="class-EPUBMaker::Producer" class="class">
  class EPUBMaker::Producer
</h1>

<section class="description">

<p><a href=“../EPUBMaker.html”>EPUBMaker</a> produces EPUB file.</p>

</section>

<section id="5Buntitled-5D" class="documentation-section">

  <section class="attribute-method-details" class="method-section">
    <header>
      <h3>Attributes</h3>
    </header>

    <div id="attribute-i-contents" class="method-detail">
      <div class="method-heading attribute-method-heading">
        <span class="method-name">contents</span><span
          class="attribute-access-type">[RW]</span>
      </div>

      <div class="method-description">

      <p>Array of content objects.</p>

      </div>
    </div>

    <div id="attribute-i-params" class="method-detail">
      <div class="method-heading attribute-method-heading">
        <span class="method-name">params</span><span
          class="attribute-access-type">[RW]</span>
      </div>

      <div class="method-description">

      <p>Parameter hash.</p>

      </div>
    </div>

    <div id="attribute-i-res" class="method-detail">
      <div class="method-heading attribute-method-heading">
        <span class="method-name">res</span><span
          class="attribute-access-type">[R]</span>
      </div>

      <div class="method-description">

      <p>Message resource object.</p>

      </div>
    </div>

  </section>

   <section id="public-class-5Buntitled-5D-method-details" class="method-section">
     <header>
       <h3>Public Class Methods</h3>
     </header>

    <div id="method-c-load" class="method-detail ">

      <div class="method-heading">
        <span class="method-name">load</span><span
          class="method-args">(file)</span>

        <span class="method-click-advice">click to toggle source</span>

      </div>

      <div class="method-description">

        <p>Take YAML <code>file</code> and return parameter hash.</p>

        <div class="method-source-code" id="load-source">
          <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 31</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-constant”>Producer</span>.<span class=“ruby-identifier”>load</span>(<span class=“ruby-identifier”>file</span>)

<span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Can&#39;t open #{file}.&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">file</span>)
<span class="ruby-identifier">loader</span> = <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">YAMLLoader</span>.<span class="ruby-identifier">new</span>
<span class="ruby-identifier">loader</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">file</span>)

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-c-new" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">new</span><span
      class="method-args">(params=nil, version=nil)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Construct producer object. <code>params</code> takes initial parameter

hash. This parameters can be overriden by EPUBMaker#load or EPUBMaker#merge_params. version takes EPUB version (default is 2).</p>

<div class="method-source-code" id="new-source">
  <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 47</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>initialize</span>(<span class=“ruby-identifier”>params</span>=<span class=“ruby-keyword”>nil</span>, <span class=“ruby-identifier”>version</span>=<span class=“ruby-keyword”>nil</span>)

<span class="ruby-ivar">@contents</span> = []
<span class="ruby-ivar">@params</span> = <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">Configure</span>.<span class="ruby-identifier">new</span>
<span class="ruby-ivar">@epub</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;epubversion&quot;</span>] = <span class="ruby-identifier">version</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-ivar">@res</span> = <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">I18n</span>

<span class="ruby-keyword">if</span> <span class="ruby-identifier">params</span>
  <span class="ruby-identifier">merge_params</span>(<span class="ruby-identifier">params</span>)
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

      </div>

    </div>

  </div>

</section>

 <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
   <header>
     <h3>Public Instance Methods</h3>
   </header>

  <div id="method-i-call_hook" class="method-detail ">

    <div class="method-heading">
      <span class="method-name">call_hook</span><span
        class="method-args">(filename, *params)</span>

      <span class="method-click-advice">click to toggle source</span>

    </div>

    <div class="method-description">

      <div class="method-source-code" id="call_hook-source">
        <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 185</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>call_hook</span>(<span class=“ruby-identifier”>filename</span>, <span class=“ruby-operator”>*</span><span class=“ruby-identifier”>params</span>)

<span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">filename</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">executable?</span>(<span class="ruby-identifier">filename</span>)
  <span class="ruby-keyword">if</span> <span class="ruby-constant">ENV</span>[<span class="ruby-string">&quot;REVIEW_SAFE_MODE&quot;</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&amp;</span> <span class="ruby-value">1</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
    <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;hook is prohibited in safe mode. ignored.&quot;</span>
  <span class="ruby-keyword">else</span>
    <span class="ruby-identifier">system</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">params</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-colophon" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">colophon</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write colophon file to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="colophon-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 131</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>colophon</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">colophon</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-container" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">container</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write container file to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="container-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 110</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>container</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">container</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-cover" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">cover</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write cover file to IO object <code>wobj</code>. If <a

href=“Producer.html#attribute-i-params”>#params</a> is defined, it will be used for the cover image.</p>

<div class="method-source-code" id="cover-source">
  <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 118</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>cover</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">type</span> = (<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;epubversion&quot;</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">3</span>) <span class="ruby-operator">?</span> <span class="ruby-string">&quot;cover&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">cover</span>(<span class="ruby-identifier">type</span>)
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-coverimage" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">coverimage</span><span
      class="method-args">()</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <div class="method-source-code" id="coverimage-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 59</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>coverimage</span>

<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">params</span>[<span class="ruby-string">&quot;coverimage&quot;</span>]
<span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">media</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-string">&#39;image&#39;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">file</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{params[&quot;coverimage&quot;]}\Z/</span> <span class="ruby-comment"># /</span>
    <span class="ruby-keyword">return</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">file</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-importImageInfo" class="method-detail method-alias">

  <div class="method-heading">
    <span class="method-name">importImageInfo</span><span
      class="method-args">(path, base=nil, allow_exts=nil)</span>

  </div>

  <div class="method-description">

  </div>

  <div class="aliases">
    Alias for: <a href="Producer.html#method-i-import_imageinfo">import_imageinfo</a>
  </div>

</div>

<div id="method-i-import_imageinfo" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">import_imageinfo</span><span
      class="method-args">(path, base=nil, allow_exts=nil)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Add informations of figure files in <code>path</code> to contents array.

base defines a string to remove from path name.</p>

<div class="method-source-code" id="import_imageinfo-source">
  <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 144</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>import_imageinfo</span>(<span class=“ruby-identifier”>path</span>, <span class=“ruby-identifier”>base</span>=<span class=“ruby-keyword”>nil</span>, <span class=“ruby-identifier”>allow_exts</span>=<span class=“ruby-keyword”>nil</span>)

<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-identifier">allow_exts</span> = <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;image_ext&quot;</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">allow_exts</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">foreach</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
  <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-string">&#39;.&#39;</span>)
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/\.(#{allow_exts.join(&quot;|&quot;)})\Z/i</span>
    <span class="ruby-identifier">path</span>.<span class="ruby-identifier">chop!</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\/\Z/</span>
    <span class="ruby-keyword">if</span> <span class="ruby-identifier">base</span>.<span class="ruby-identifier">nil?</span>
      <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">EPUBMaker</span><span class="ruby-operator">::</span><span class="ruby-constant">Content</span>.<span class="ruby-identifier">new</span>({<span class="ruby-string">&quot;file&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{path}/#{f}&quot;</span>}))
    <span class="ruby-keyword">else</span>
      <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">EPUBMaker</span><span class="ruby-operator">::</span><span class="ruby-constant">Content</span>.<span class="ruby-identifier">new</span>({<span class="ruby-string">&quot;file&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{path.sub(base + &quot;/&quot;, &#39;&#39;)}/#{f}&quot;</span>}))
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">if</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-node">&quot;#{path}/#{f}&quot;</span>)
    <span class="ruby-identifier">import_imageinfo</span>(<span class="ruby-node">&quot;#{path}/#{f}&quot;</span>, <span class="ruby-identifier">base</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

  <div class="aliases">
    Also aliased as: <a href="Producer.html#method-i-importImageInfo">importImageInfo</a>
  </div>

</div>

<div id="method-i-isbn_hyphen" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">isbn_hyphen</span><span
      class="method-args">()</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <div class="method-source-code" id="isbn_hyphen-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 195</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>isbn_hyphen</span>

<span class="ruby-identifier">str</span> = <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;isbn&quot;</span>].<span class="ruby-identifier">to_s</span>

<span class="ruby-keyword">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A\d{10}\Z/</span>
  <span class="ruby-node">&quot;#{str[0..0]}-#{str[1..5]}-#{str[6..8]}-#{str[9..9]}&quot;</span>
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A\d{13}\Z/</span>
  <span class="ruby-node">&quot;#{str[0..2]}-#{str[3..3]}-#{str[4..8]}-#{str[9..11]}-#{str[12..12]}&quot;</span>
<span class="ruby-keyword">else</span>
  <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-load" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">load</span><span
      class="method-args">(file)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Take YAML <code>file</code> and update parameter hash.</p>

    <div class="method-source-code" id="load-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 38</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>load</span>(<span class=“ruby-identifier”>file</span>)

<span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Can&#39;t open #{file}.&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">file</span>)
<span class="ruby-identifier">loader</span> = <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">YAMLLoader</span>.<span class="ruby-identifier">new</span>
<span class="ruby-identifier">merge_params</span>(<span class="ruby-ivar">@params</span>.<span class="ruby-identifier">deep_merge</span>(<span class="ruby-identifier">loader</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">file</span>)))

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-merge_params" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">merge_params</span><span
      class="method-args">(params)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Update parameters by merging from new parameter hash <code>params</code>.</p>

    <div class="method-source-code" id="merge_params-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 70</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>merge_params</span>(<span class=“ruby-identifier”>params</span>)

<span class="ruby-ivar">@params</span>.<span class="ruby-identifier">deep_merge!</span>(<span class="ruby-identifier">params</span>)
<span class="ruby-identifier">complement</span>

<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;epubversion&quot;</span>].<span class="ruby-identifier">nil?</span>
  <span class="ruby-keyword">case</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;epubversion&quot;</span>].<span class="ruby-identifier">to_i</span>
  <span class="ruby-keyword">when</span> <span class="ruby-value">2</span>
    <span class="ruby-ivar">@epub</span> = <span class="ruby-constant">EPUBMaker</span><span class="ruby-operator">::</span><span class="ruby-constant">EPUBv2</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
  <span class="ruby-keyword">when</span> <span class="ruby-value">3</span>
    <span class="ruby-ivar">@epub</span> = <span class="ruby-constant">EPUBMaker</span><span class="ruby-operator">::</span><span class="ruby-constant">EPUBv3</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
  <span class="ruby-keyword">else</span>
    <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Invalid EPUB version (#{@params[&quot;epubversion&quot;]}.)&quot;</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-string">&quot;language&quot;</span>]
  <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">I18n</span>.<span class="ruby-identifier">locale</span> = <span class="ruby-identifier">params</span>[<span class="ruby-string">&quot;language&quot;</span>]
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">support_legacy_maker</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-mimetype" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">mimetype</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write mimetype file to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="mimetype-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 91</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>mimetype</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">mimetype</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-mytoc" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">mytoc</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write own toc file to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="mytoc-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 137</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>mytoc</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">mytoc</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-ncx" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">ncx</span><span
      class="method-args">(wobj, indentarray=[])</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write ncx file to IO object <code>wobj</code>. <code>indentarray</code>

defines prefix string for each level.</p>

<div class="method-source-code" id="ncx-source">
  <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 104</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>ncx</span>(<span class=“ruby-identifier”>wobj</span>, <span class=“ruby-identifier”>indentarray</span>=[])

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">ncx</span>(<span class="ruby-identifier">indentarray</span>)
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-opf" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">opf</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write opf file to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="opf-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 97</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>opf</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">opf</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-produce" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">produce</span><span
      class="method-args">(epubfile, basedir=nil, tmpdir=nil)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Produce EPUB file <code>epubfile</code>. <code>basedir</code> points the

directory has contents (default: current directory.) tmpdir defines temporary directory.</p>

<div class="method-source-code" id="produce-source">
  <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 168</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>produce</span>(<span class=“ruby-identifier”>epubfile</span>, <span class=“ruby-identifier”>basedir</span>=<span class=“ruby-keyword”>nil</span>, <span class=“ruby-identifier”>tmpdir</span>=<span class=“ruby-keyword”>nil</span>)

<span class="ruby-identifier">current</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
<span class="ruby-identifier">basedir</span> = <span class="ruby-identifier">current</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">basedir</span>.<span class="ruby-identifier">nil?</span>

<span class="ruby-identifier">new_tmpdir</span> = <span class="ruby-identifier">tmpdir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mktmpdir</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">tmpdir</span>
<span class="ruby-identifier">epubfile</span> = <span class="ruby-node">&quot;#{current}/#{epubfile}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">epubfile</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp">/\A\//</span> <span class="ruby-comment"># /</span>

<span class="ruby-comment"># FIXME: error check</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">unlink</span>(<span class="ruby-identifier">epubfile</span>) <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">epubfile</span>)

<span class="ruby-keyword">begin</span>
  <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">produce</span>(<span class="ruby-identifier">epubfile</span>, <span class="ruby-identifier">basedir</span>, <span class="ruby-identifier">new_tmpdir</span>)
<span class="ruby-keyword">ensure</span>
  <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_r</span>(<span class="ruby-identifier">new_tmpdir</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">tmpdir</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-titlepage" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">titlepage</span><span
      class="method-args">(wobj)</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <p>Write title file (copying) to IO object <code>wobj</code>.</p>

    <div class="method-source-code" id="titlepage-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 125</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>titlepage</span>(<span class=“ruby-identifier”>wobj</span>)

<span class="ruby-identifier">s</span> = <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">titlepage</span>
<span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wobj</span>.<span class="ruby-identifier">nil?</span>

<span class=“ruby-keyword”>end</span></pre>

      </div>

    </div>

  </div>

</section>

 <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
   <header>
     <h3>Private Instance Methods</h3>
   </header>

  <div id="method-i-complement" class="method-detail ">

    <div class="method-heading">
      <span class="method-name">complement</span><span
        class="method-args">()</span>

      <span class="method-click-advice">click to toggle source</span>

    </div>

    <div class="method-description">

      <p>Complement parameters.</p>

      <div class="method-source-code" id="complement-source">
        <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 210</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>complement</span>

<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;htmlext&quot;</span>] = <span class="ruby-string">&quot;html&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;htmlext&quot;</span>].<span class="ruby-identifier">nil?</span>
<span class="ruby-identifier">defaults</span> = <span class="ruby-constant">ReVIEW</span><span class="ruby-operator">::</span><span class="ruby-constant">Configure</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">merge</span>({
                                         <span class="ruby-string">&quot;language&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;ja&quot;</span>,
                                         <span class="ruby-string">&quot;date&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d&quot;</span>),
                                         <span class="ruby-string">&quot;modified&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%02m-%02dT%02H:%02M:%02SZ&quot;</span>),
                                         <span class="ruby-string">&quot;isbn&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;toclevel&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>,
                                         <span class="ruby-string">&quot;stylesheet&quot;</span> =<span class="ruby-operator">&gt;</span> [],
                                         <span class="ruby-string">&quot;epubversion&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>,
                                         <span class="ruby-string">&quot;htmlversion&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">5</span>,
                                         <span class="ruby-string">&quot;secnolevel&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>,
                                         <span class="ruby-string">&quot;pre_secnolevel&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>,
                                         <span class="ruby-string">&quot;post_secnolevel&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>,
                                         <span class="ruby-string">&quot;part_secnolevel&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>,
                                         <span class="ruby-string">&quot;titlepage&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;titlefile&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;originaltitlefile&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;profile&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;colophon&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         <span class="ruby-string">&quot;colophon_order&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">%w[aut csl trl dsr ill edt pbl prt pht]</span>,
                                         <span class="ruby-string">&quot;direction&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;ltr&quot;</span>,
                                         <span class="ruby-string">&quot;epubmaker&quot;</span> =<span class="ruby-operator">&gt;</span> {
                                           <span class="ruby-string">&quot;flattoc&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;flattocindent&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
                                           <span class="ruby-string">&quot;ncx_indent&quot;</span> =<span class="ruby-operator">&gt;</span> [],
                                           <span class="ruby-string">&quot;zip_stage1&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;zip -0Xq&quot;</span>,
                                           <span class="ruby-string">&quot;zip_stage2&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;zip -Xr9Dq&quot;</span>,
                                           <span class="ruby-string">&quot;zip_addpath&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_beforeprocess&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_afterfrontmatter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_afterbody&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_afterbackmatter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_aftercopyimage&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;hook_prepack&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;rename_for_legacy&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;verify_target_images&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                           <span class="ruby-string">&quot;force_include_images&quot;</span> =<span class="ruby-operator">&gt;</span> [],
                                           <span class="ruby-string">&quot;cover_linear&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
                                         },
                                         <span class="ruby-string">&quot;externallink&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
                                         <span class="ruby-string">&quot;imagedir&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;images&quot;</span>,
                                         <span class="ruby-string">&quot;fontdir&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;fonts&quot;</span>,
                                         <span class="ruby-string">&quot;image_ext&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">%w(png gif jpg jpeg svg ttf woff otf)</span>,
                                         <span class="ruby-string">&quot;font_ext&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">%w(ttf woff otf)</span>,
                                       })

<span class="ruby-ivar">@params</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">deep_merge</span>(<span class="ruby-ivar">@params</span>)
<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;title&quot;</span>] = <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;booktitle&quot;</span>] <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;title&quot;</span>]

<span class="ruby-identifier">deprecated_parameters</span> = {
  <span class="ruby-string">&quot;ncxindent&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:ncxindent&quot;</span>,
  <span class="ruby-string">&quot;flattoc&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:flattoc&quot;</span>,
  <span class="ruby-string">&quot;flattocindent&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:flattocindent&quot;</span>,
  <span class="ruby-string">&quot;hook_beforeprocess&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_beforeprocess&quot;</span>,
  <span class="ruby-string">&quot;hook_afterfrontmatter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_afterfrontmatter&quot;</span>,
  <span class="ruby-string">&quot;hook_afterbody&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_afterbody&quot;</span>,
  <span class="ruby-string">&quot;hook_afterbackmatter&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_afterbackmatter&quot;</span>,
  <span class="ruby-string">&quot;hook_aftercopyimage&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_aftercopyimage&quot;</span>,
  <span class="ruby-string">&quot;hook_prepack&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:hook_prepack&quot;</span>,
  <span class="ruby-string">&quot;rename_for_legacy&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:rename_for_legacy&quot;</span>,
  <span class="ruby-string">&quot;zip_stage1&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:zip_stage1&quot;</span>,
  <span class="ruby-string">&quot;zip_stage2&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:zip_stage2&quot;</span>,
  <span class="ruby-string">&quot;zip_addpath&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:zip_addpath&quot;</span>,
  <span class="ruby-string">&quot;verify_target_images&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:verify_target_images&quot;</span>,
  <span class="ruby-string">&quot;force_include_images&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:force_include_images&quot;</span>,
  <span class="ruby-string">&quot;cover_linear&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;epubmaker:cover_linear&quot;</span>,
}

<span class="ruby-identifier">deprecated_parameters</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
  <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">nil?</span>
    <span class="ruby-identifier">sa</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&quot;:&quot;</span>, <span class="ruby-value">2</span>)
    <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;Parameter #{k} is deprecated. Use:\n#{sa[0]}:\n  #{sa[1]}: ...\n\n&quot;</span>
    <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">sa</span>[<span class="ruby-value">0</span>]][<span class="ruby-identifier">sa</span>[<span class="ruby-value">1</span>]] = <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">k</span>]
    <span class="ruby-ivar">@params</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>

<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;htmlversion&quot;</span>] = <span class="ruby-value">5</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;epubversion&quot;</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">3</span>

<span class="ruby-ivar">@params</span>.<span class="ruby-identifier">maker</span> = <span class="ruby-string">&quot;epubmaker&quot;</span>
<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;cover&quot;</span>] = <span class="ruby-node">&quot;#{@params[&quot;bookname&quot;]}.#{@params[&quot;htmlext&quot;]}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;cover&quot;</span>]

<span class="ruby-node">%w[bookname title]</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Key #{k} must have a value. Abort.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">k</span>]
<span class="ruby-keyword">end</span>
<span class="ruby-comment"># array</span>
<span class="ruby-node">%w[subject aut
   a-adp a-ann a-arr a-art a-asn a-aqt a-aft a-aui a-ant a-bkp a-clb a-cmm a-dsr a-edt
   a-ill a-lyr a-mdc a-mus a-nrt a-oth a-pht a-prt a-red a-rev a-spn a-ths a-trc a-trl
   adp ann arr art asn aut aqt aft aui ant bkp clb cmm dsr edt
   ill lyr mdc mus nrt oth pht pbl prt red rev spn ths trc trl
   stylesheet rights]</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
  <span class="ruby-keyword">next</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">item</span>]
  <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">item</span>] = [<span class="ruby-ivar">@params</span>[<span class="ruby-identifier">item</span>]] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-identifier">item</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-comment"># optional</span>
<span class="ruby-comment"># type, format, identifier, source, relation, coverpage, aut</span>

<span class=“ruby-keyword”>end</span></pre>

    </div>

  </div>

</div>

<div id="method-i-support_legacy_maker" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">support_legacy_maker</span><span
      class="method-args">()</span>

    <span class="method-click-advice">click to toggle source</span>

  </div>

  <div class="method-description">

    <div class="method-source-code" id="support_legacy_maker-source">
      <pre><span class="ruby-comment"># File lib/epubmaker/producer.rb, line 310</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>support_legacy_maker</span>

<span class="ruby-comment"># legacy review-epubmaker support</span>
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_coverfile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;coverfile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;coverfile&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;cover&quot;</span>] = <span class="ruby-node">&quot;#{@params[&quot;bookname&quot;]}-cover.#{@params[&quot;htmlext&quot;]}&quot;</span>
  <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">legacy_cover_and_title_file</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;coverfile&quot;</span>], <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;cover&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_coverfile&quot;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;Parameter &#39;coverfile&#39; is obsolete. Please use &#39;cover&#39; and make complete html file with header and footer.&quot;</span>
<span class="ruby-keyword">end</span>

<span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_titlepagefile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlepagefile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlepagefile&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlefile&quot;</span>] = <span class="ruby-node">&quot;#{@params[&quot;bookname&quot;]}-title.#{@params[&quot;htmlext&quot;]}&quot;</span>
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlepage&quot;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">legacy_cover_and_title_file</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlepagefile&quot;</span>], <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;titlefile&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_titlepagefile&quot;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;Parameter &#39;titlepagefile&#39; is obsolete. Please use &#39;titlefile&#39; and make complete html file with header and footer.&quot;</span>
<span class="ruby-keyword">end</span>

<span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_backcoverfile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;backcoverfile&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;backcoverfile&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;backcover&quot;</span>] = <span class="ruby-node">&quot;#{@params[&quot;bookname&quot;]}-backcover.#{@params[&quot;htmlext&quot;]}&quot;</span>
  <span class="ruby-ivar">@epub</span>.<span class="ruby-identifier">legacy_cover_and_title_file</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;backcoverfile&quot;</span>], <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;backcover&quot;</span>])
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_backcoverfile&quot;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;Parameter &#39;backcoverfile&#39; is obsolete. Please use &#39;backcover&#39; and make complete html file with header and footer.&quot;</span>
<span class="ruby-keyword">end</span>

<span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_pubhistory&quot;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;pubhistory&quot;</span>].<span class="ruby-identifier">nil?</span>
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;history&quot;</span>] = [[]]
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;pubhistory&quot;</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">date</span><span class="ruby-operator">|</span>
    <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;history&quot;</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">date</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/(\d+)年(\d+)月(\d+)日/</span>, <span class="ruby-string">&#39;\1-\2-\3&#39;</span>))
  <span class="ruby-keyword">end</span>
  <span class="ruby-ivar">@params</span>[<span class="ruby-string">&quot;flag_legacy_pubhistory&quot;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;Parameter &#39;pubhistory&#39; is obsolete. Please use &#39;history&#39; array.&quot;</span>
<span class="ruby-keyword">end</span>

<span class=“ruby-keyword”>end</span></pre>

        </div>

      </div>

    </div>

  </section>

</section>

</main>

<footer id=“validator-badges” role=“contentinfo”>

<p><a href="http://validator.w3.org/check/referer">Validate</a>
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.

</footer>