<!DOCTYPE html>

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

<title>class EPUBMaker::Producer - review-2.4.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_config">#merge_config</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-config" class="method-detail">
      <div class="method-heading attribute-method-heading">
        <span class="method-name">config</span><span
          class="attribute-access-type">[RW]</span>
      </div>

      <div class="method-description">

      <p>Parameter hash.</p>

      </div>
    </div>

    <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-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-keyword”>self</span>.<span class=“ruby-identifier ruby-title”>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">(config = nil, version = nil)</span>

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

  </div>

  <div class="method-description">

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

hash. This parameters can be overriden by EPUBMaker#load or EPUBMaker#merge_config. 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 ruby-title”>initialize</span>(<span class=“ruby-identifier”>config</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">@config</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">@config</span>[<span class="ruby-string">&#39;epubversion&#39;</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-identifier">merge_config</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</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 179</span>

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

<span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">filename</span>.<span class="ruby-identifier">present?</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">filename</span>) <span class="ruby-operator">||</span> <span class="ruby-operator">!</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">&#39;REVIEW_SAFE_MODE&#39;</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">&#39;hook is prohibited in safe mode. ignored.&#39;</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></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 127</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 106</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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-config”>#config</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 114</span>

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

<span class="ruby-identifier">type</span> = <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;epubversion&#39;</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">3</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;cover&#39;</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 57</span>

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

<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">config</span>[<span class="ruby-string">&#39;coverimage&#39;</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-regexp">/#{config[&#39;coverimage&#39;]}\Z/</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">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 140</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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">@config</span>[<span class="ruby-string">&#39;image_ext&#39;</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-regexp">/\.(#{allow_exts.join(&#39;|&#39;)})\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">%r{/\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">&#39;file&#39;</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">&#39;file&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-node">&quot;#{path.sub(base + &#39;/&#39;, &#39;&#39;)}/#{f}&quot;</span>))
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</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">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-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 188</span>

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

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

<span class="ruby-keyword">return</span> <span class="ruby-node">&quot;#{str[0..0]}-#{str[1..5]}-#{str[6..8]}-#{str[9..9]}&quot;</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-keyword">return</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">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A\d{13}\Z/</span>
<span class="ruby-keyword">nil</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 ruby-title”>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_config</span>(<span class="ruby-ivar">@config</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_config" class="method-detail ">

  <div class="method-heading">
    <span class="method-name">merge_config</span><span
      class="method-args">(config)</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>config</code>.</p>

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

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>merge_config</span>(<span class=“ruby-identifier”>config</span>)

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

<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;epubversion&#39;</span>].<span class="ruby-identifier">nil?</span>
  <span class="ruby-keyword">case</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;epubversion&#39;</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 (#{@config[&#39;epubversion&#39;]}.)&quot;</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</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">config</span>[<span class="ruby-string">&#39;language&#39;</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>[<span class="ruby-string">&#39;language&#39;</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 87</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 133</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 100</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 93</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 162</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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">%r{\A/}</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 121</span>

<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier ruby-title”>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 199</span>

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

<span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;htmlext&#39;</span>] = <span class="ruby-string">&#39;html&#39;</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;htmlext&#39;</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">&#39;language&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;ja&#39;</span>,
  <span class="ruby-string">&#39;date&#39;</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">&#39;%Y-%m-%d&#39;</span>),
  <span class="ruby-string">&#39;modified&#39;</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">&#39;%Y-%02m-%02dT%02H:%02M:%02SZ&#39;</span>),
  <span class="ruby-string">&#39;isbn&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
  <span class="ruby-string">&#39;toclevel&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">2</span>,
  <span class="ruby-string">&#39;stylesheet&#39;</span> <span class="ruby-operator">=&gt;</span> [],
  <span class="ruby-string">&#39;epubversion&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">3</span>,
  <span class="ruby-string">&#39;htmlversion&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">5</span>,
  <span class="ruby-string">&#39;secnolevel&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">2</span>,
  <span class="ruby-string">&#39;pre_secnolevel&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">0</span>,
  <span class="ruby-string">&#39;post_secnolevel&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">1</span>,
  <span class="ruby-string">&#39;part_secnolevel&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">1</span>,
  <span class="ruby-string">&#39;titlepage&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">true</span>,
  <span class="ruby-string">&#39;titlefile&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
  <span class="ruby-string">&#39;originaltitlefile&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
  <span class="ruby-string">&#39;profile&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
  <span class="ruby-string">&#39;colophon&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
  <span class="ruby-string">&#39;colophon_order&#39;</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">&#39;direction&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;ltr&#39;</span>,
  <span class="ruby-string">&#39;epubmaker&#39;</span> <span class="ruby-operator">=&gt;</span> {
    <span class="ruby-string">&#39;flattoc&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;flattocindent&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">true</span>,
    <span class="ruby-string">&#39;ncx_indent&#39;</span> <span class="ruby-operator">=&gt;</span> [],
    <span class="ruby-string">&#39;zip_stage1&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;zip -0Xq&#39;</span>,
    <span class="ruby-string">&#39;zip_stage2&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;zip -Xr9Dq&#39;</span>,
    <span class="ruby-string">&#39;zip_addpath&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_beforeprocess&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_afterfrontmatter&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_afterbody&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_afterbackmatter&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_aftercopyimage&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;hook_prepack&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;rename_for_legacy&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;verify_target_images&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>,
    <span class="ruby-string">&#39;force_include_images&#39;</span> <span class="ruby-operator">=&gt;</span> [],
    <span class="ruby-string">&#39;cover_linear&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">nil</span>
  },
  <span class="ruby-string">&#39;externallink&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-keyword">true</span>,
  <span class="ruby-string">&#39;imagedir&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;images&#39;</span>,
  <span class="ruby-string">&#39;fontdir&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;fonts&#39;</span>,
  <span class="ruby-string">&#39;image_ext&#39;</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">&#39;image_maxpixels&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-value">4_000_000</span>,
  <span class="ruby-string">&#39;font_ext&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-node">%w[ttf woff otf]</span>
)

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

<span class="ruby-identifier">deprecated_parameters</span> = {
  <span class="ruby-string">&#39;ncxindent&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:ncxindent&#39;</span>,
  <span class="ruby-string">&#39;flattoc&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:flattoc&#39;</span>,
  <span class="ruby-string">&#39;flattocindent&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:flattocindent&#39;</span>,
  <span class="ruby-string">&#39;hook_beforeprocess&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_beforeprocess&#39;</span>,
  <span class="ruby-string">&#39;hook_afterfrontmatter&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_afterfrontmatter&#39;</span>,
  <span class="ruby-string">&#39;hook_afterbody&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_afterbody&#39;</span>,
  <span class="ruby-string">&#39;hook_afterbackmatter&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_afterbackmatter&#39;</span>,
  <span class="ruby-string">&#39;hook_aftercopyimage&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_aftercopyimage&#39;</span>,
  <span class="ruby-string">&#39;hook_prepack&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:hook_prepack&#39;</span>,
  <span class="ruby-string">&#39;rename_for_legacy&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:rename_for_legacy&#39;</span>,
  <span class="ruby-string">&#39;zip_stage1&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:zip_stage1&#39;</span>,
  <span class="ruby-string">&#39;zip_stage2&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:zip_stage2&#39;</span>,
  <span class="ruby-string">&#39;zip_addpath&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:zip_addpath&#39;</span>,
  <span class="ruby-string">&#39;verify_target_images&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:verify_target_images&#39;</span>,
  <span class="ruby-string">&#39;force_include_images&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:force_include_images&#39;</span>,
  <span class="ruby-string">&#39;cover_linear&#39;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&#39;epubmaker:cover_linear&#39;</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">next</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@config</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">&#39;:&#39;</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">@config</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">@config</span>[<span class="ruby-identifier">k</span>]
  <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
<span class="ruby-keyword">end</span>

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

<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">maker</span> = <span class="ruby-string">&#39;epubmaker&#39;</span>
<span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;cover&#39;</span>] = <span class="ruby-node">&quot;#{@config[&#39;bookname&#39;]}.#{@config[&#39;htmlext&#39;]}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;cover&#39;</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">@config</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">@config</span>[<span class="ruby-identifier">item</span>]
  <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">item</span>] = [<span class="ruby-ivar">@config</span>[<span class="ruby-identifier">item</span>]] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@config</span>[<span class="ruby-identifier">item</span>].<span class="ruby-identifier">is_a?</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 299</span>

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

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

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

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

<span class="ruby-keyword">if</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;flag_legacy_pubhistory&#39;</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;pubhistory&#39;</span>]
  <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;history&#39;</span>] = [[]]
  <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;pubhistory&#39;</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">date</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@config</span>[<span class="ruby-string">&#39;history&#39;</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-ivar">@config</span>[<span class="ruby-string">&#39;flag_legacy_pubhistory&#39;</span>] = <span class="ruby-keyword">true</span>
  <span class="ruby-identifier">warn</span> <span class="ruby-string">%Q(Parameter &#39;pubhistory&#39; is obsolete. Please use &#39;history&#39; array.)</span>
<span class="ruby-keyword">end</span>

<span class="ruby-keyword">true</span>

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

        </div>

      </div>

    </div>

  </section>

</section>

</main>

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

<p><a href="https://validator.w3.org/check/referer">Validate</a>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.0.1.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.

</footer>