spoonerize 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/README.md +103 -28
- data/doc/README_md.html +86 -26
- data/doc/Spoonerize/Cli.html +9 -8
- data/doc/Spoonerize/Spoonerism.html +182 -13
- data/doc/created.rid +8 -8
- data/doc/index.html +83 -24
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/table_of_contents.html +24 -7
- data/lib/config/lazy_words.yml +2 -1
- data/lib/spoonerize/cli.rb +4 -4
- data/lib/spoonerize/spoonerism.rb +231 -162
- data/lib/spoonerize/version.rb +1 -1
- metadata +2 -3
- data/pkg/spoonerize-0.0.7.gem +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9b87634fd09d0a168098bb2c91ee8ffd978e2d1bfd6fe1783ebce28e64617fbb
         | 
| 4 | 
            +
              data.tar.gz: b852745fc0fe8a2ecbb95181275de0642d2975380f79b29f6cac3252116d9901
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c2f178fbed34dceed86b76bdc1c97d6d5f0aa23daeb73b6d5cc233a9a9c2292bd4fd83bb671a1a0e009d28fda6a71b221378d161927852b43b9f47b985b847ee
         | 
| 7 | 
            +
              data.tar.gz: e92bfa5bd30bdeee7515bda37cd58a112552ece8709d515468b5c3f2497527f15ac87eaa9c71f3f09eeb71dff4b7b0572749d6faf75e086d32b548017292061c
         | 
    
        data/.gitignore
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            spoonerize-*.gem
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,22 +1,50 @@ | |
| 1 | 
            -
            # Welcome to  | 
| 2 | 
            -
             | 
| 1 | 
            +
            # Welcome to Spoonerize -- a word game.
         | 
| 2 | 
            +
            [](https://actions-badge.atrox.dev/evanthegrayt/spoonerize/goto?ref=master)
         | 
| 3 | 
            +
            [](https://badge.fury.io/rb/spoonerize)
         | 
| 4 | 
            +
            [](https://opensource.org/licenses/MIT)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            > Spoonerism *[noun]* a verbal error in which a speaker accidentally transposes
         | 
| 3 7 | 
             
            > the initial sounds or letters of two or more words, often to humorous effect.
         | 
| 4 8 |  | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
            Well, when I was in high school, we took it further -- probably too far -- and
         | 
| 9 | 
            -
            made a rule set. This program follows those rules, which are listed below.
         | 
| 9 | 
            +
            View on [Github](https://github.com/evanthegrayt/spoonerize) |
         | 
| 10 | 
            +
            [Github Pages](https://evanthegrayt.github.io/spoonerize/) |
         | 
| 11 | 
            +
            [RubyGems](https://rubygems.org/gems/spoonerize)
         | 
| 10 12 |  | 
| 11 13 | 
             
            ## Table of Contents
         | 
| 14 | 
            +
            - [About](#about)
         | 
| 12 15 | 
             
            - [Installation](#installation)
         | 
| 13 16 | 
             
              - [Automated](#automated)
         | 
| 14 17 | 
             
              - [Manual](#manual)
         | 
| 15 18 | 
             
            - [Command Line Usage](#command-line-usage)
         | 
| 19 | 
            +
              - [Config file](#config-file)
         | 
| 16 20 | 
             
            - [API](#api)
         | 
| 17 | 
            -
            - [ | 
| 21 | 
            +
              - [Documentation](https://evanthegrayt.github.io/spoonerize/doc/index.html)
         | 
| 18 22 | 
             
            - [Self-Promotion](#self-promotion)
         | 
| 19 23 |  | 
| 24 | 
            +
            ## About
         | 
| 25 | 
            +
            We've all done it; someone says a phrase, and you flip the first few letters
         | 
| 26 | 
            +
            around, and sometimes, it makes an even funnier phrase. For example:
         | 
| 27 | 
            +
            "Tomb Raider" becomes "Romb Taider".
         | 
| 28 | 
            +
            Well, when I was in high school, we took it further -- probably too far -- and
         | 
| 29 | 
            +
            made a rule set. This gem, which includes a command-line executable, follows
         | 
| 30 | 
            +
            those rules, which are:
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            - Each word drops its leading consonant group and takes the leading consonant
         | 
| 33 | 
            +
            group of the next word.
         | 
| 34 | 
            +
            - If the word has no leading consonants, nothing is dropped, but it still
         | 
| 35 | 
            +
            receives the next word's leading consonants if it has any.
         | 
| 36 | 
            +
            - If the next word has no leading consonants, the current word receives no
         | 
| 37 | 
            +
            consonants, but will still lose its own if it has any.
         | 
| 38 | 
            +
            - When being "lazy", common words ("the", "his", etc.) remain unchanged.
         | 
| 39 | 
            +
            - If the word to pull from is excluded, that word is skipped, and you pull the
         | 
| 40 | 
            +
            leading consonants from the next non-excluded word.
         | 
| 41 | 
            +
            - "Q" and "U" should stay together (like "queen").
         | 
| 42 | 
            +
            - A lot of the time, the words won't look how they're supposed to sound, as you
         | 
| 43 | 
            +
            go by how the word *used* to sound, not how it's spelled. For instance,
         | 
| 44 | 
            +
            `$ spoonerize two new cuties` becomes "no cew twuties", but it would be
         | 
| 45 | 
            +
            pronounced "new coo tooties", as the words retain their original sounds.
         | 
| 46 | 
            +
             | 
| 47 | 
            +
             | 
| 20 48 | 
             
            ## Installation
         | 
| 21 49 | 
             
            ### Automated
         | 
| 22 50 | 
             
            Just install the gem!
         | 
| @@ -67,37 +95,84 @@ get the results. For example: | |
| 67 95 |  | 
| 68 96 | 
             
            ```
         | 
| 69 97 | 
             
            $ spoonerize -s not too shabby
         | 
| 70 | 
            -
            Saving [tot shoo nabby] to / | 
| 98 | 
            +
            Saving [tot shoo nabby] to ~/.cache/spoonerize/spoonerize.csv
         | 
| 71 99 |  | 
| 72 100 | 
             
            $ spoonerize -rs not too shabby
         | 
| 73 | 
            -
            Saving [shot noo tabby] to / | 
| 101 | 
            +
            Saving [shot noo tabby] to ~/.cache/spoonerize/spoonerize.csv
         | 
| 74 102 |  | 
| 75 103 | 
             
            $ spoonerize -p
         | 
| 76 104 | 
             
            not too shabby | tot shoo nabby | No Options
         | 
| 77 105 | 
             
            not too shabby | shot noo tabby | Reverse
         | 
| 78 106 | 
             
            ```
         | 
| 79 107 |  | 
| 80 | 
            -
             | 
| 108 | 
            +
            Here is a list of all available options:
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            ```
         | 
| 111 | 
            +
            -r, --[no-]reverse               Reverse flipping
         | 
| 112 | 
            +
            -l, --[no-]lazy                  Skip small words
         | 
| 113 | 
            +
            -m, --[no-]map                   Print words mapping
         | 
| 114 | 
            +
            -p, --[no-]print                 Print all entries in the log
         | 
| 115 | 
            +
            -s, --[no-]save                  Save results in log
         | 
| 116 | 
            +
                --exclude=WORDS              Words to skip
         | 
| 117 | 
            +
            ```
         | 
| 118 | 
            +
             | 
| 119 | 
            +
            ### Config File
         | 
| 120 | 
            +
            You can create a config file called `~/.spoonerize.yml`. In this file, you can
         | 
| 121 | 
            +
            change default options at runtime. Available settings are:
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            ```yaml
         | 
| 124 | 
            +
            # Setting       Default
         | 
| 125 | 
            +
            excluded_words: []
         | 
| 126 | 
            +
            lazy:           false
         | 
| 127 | 
            +
            reverse:        false
         | 
| 128 | 
            +
            logfile_name:   '~/.cache/spoonerize/spoonerize.csv'
         | 
| 129 | 
            +
            ```
         | 
| 130 | 
            +
             | 
| 131 | 
            +
            Options set by this file can be overridden at runtime by the use of the
         | 
| 132 | 
            +
            executable's flags.
         | 
| 81 133 |  | 
| 82 134 | 
             
            ## API
         | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 135 | 
            +
            The API is [fully
         | 
| 136 | 
            +
            documented](https://evanthegrayt.github.io/spoonerize/doc/index.html), but below
         | 
| 137 | 
            +
            are some quick examples of how you could use this in your ruby code.
         | 
| 85 138 |  | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 100 | 
            -
             | 
| 139 | 
            +
            ```ruby
         | 
| 140 | 
            +
            require 'spoonerize'
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            spoonerism = Spoonerize::Spoonerism.new(%w[not too shabby]) do |s|
         | 
| 143 | 
            +
              s.reverse = true
         | 
| 144 | 
            +
            end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            spoonerism.spoonerize
         | 
| 147 | 
            +
            # => shot noo tabby
         | 
| 148 | 
            +
             | 
| 149 | 
            +
            spoonerism.reverse = false
         | 
| 150 | 
            +
            spoonerism.spoonerize
         | 
| 151 | 
            +
            # => tot shoo nabby
         | 
| 152 | 
            +
             | 
| 153 | 
            +
            spoonerism.logfile_name = '~/.cache/spoonerize/spoonerize.csv'
         | 
| 154 | 
            +
            spoonerism.save
         | 
| 155 | 
            +
            ```
         | 
| 156 | 
            +
             | 
| 157 | 
            +
            You can also use the [config file](#config-file), either by passing it at
         | 
| 158 | 
            +
            initialization, or via the setter. The config file will be automatically loaded
         | 
| 159 | 
            +
            if passed at initialization, before the instance is yielded so you can still
         | 
| 160 | 
            +
            change the values via the block. If set via the setter, you must call
         | 
| 161 | 
            +
            `#load_config_file`.
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            ```ruby
         | 
| 164 | 
            +
            # Config file would be automatically loaded before block is executed.
         | 
| 165 | 
            +
            s = Spoonerise::Spoonerism.new(%w[not too shabby], '~/.spoonerize.yml') do |sp|
         | 
| 166 | 
            +
              sp.reverse = true
         | 
| 167 | 
            +
            end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
            # Config file would need to be manually loaded.
         | 
| 170 | 
            +
            s = Spoonerise::Spoonerism.new(%w[not too shabby]) do |sp|
         | 
| 171 | 
            +
              sp.config_file = '~/.spoonerize.yml'
         | 
| 172 | 
            +
            end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
            s.load_config_file
         | 
| 175 | 
            +
            ```
         | 
| 101 176 |  | 
| 102 177 | 
             
            ## Self Promotion
         | 
| 103 178 | 
             
            I do these projects for fun, and I enjoy knowing that they're helpful to people.
         | 
    
        data/doc/README_md.html
    CHANGED
    
    | @@ -60,14 +60,15 @@ | |
| 60 60 | 
             
              <h3>Table of Contents</h3>
         | 
| 61 61 |  | 
| 62 62 | 
             
              <ul class="link-list" role="directory">
         | 
| 63 | 
            -
                <li><a href="#label-Welcome+to+Spoonerize+--+a+word+game">Welcome to  | 
| 63 | 
            +
                <li><a href="#label-Welcome+to+Spoonerize+--+a+word+game.">Welcome to Spoonerize – a word game.</a>
         | 
| 64 64 | 
             
                <li><a href="#label-Table+of+Contents">Table of Contents</a>
         | 
| 65 | 
            +
                <li><a href="#label-About">About</a>
         | 
| 65 66 | 
             
                <li><a href="#label-Installation">Installation</a>
         | 
| 66 67 | 
             
                <li><a href="#label-Automated">Automated</a>
         | 
| 67 68 | 
             
                <li><a href="#label-Manual">Manual</a>
         | 
| 68 69 | 
             
                <li><a href="#label-Command+Line+Usage">Command Line Usage</a>
         | 
| 70 | 
            +
                <li><a href="#label-Config+File">Config File</a>
         | 
| 69 71 | 
             
                <li><a href="#label-API">API</a>
         | 
| 70 | 
            -
                <li><a href="#label-Rules+of+the+Game">Rules of the Game</a>
         | 
| 71 72 | 
             
                <li><a href="#label-Self+Promotion">Self Promotion</a>
         | 
| 72 73 | 
             
              </ul>
         | 
| 73 74 | 
             
            </div>
         | 
| @@ -89,16 +90,20 @@ | |
| 89 90 |  | 
| 90 91 | 
             
            <main role="main" aria-label="Page README.md">
         | 
| 91 92 |  | 
| 92 | 
            -
            <h1 id="label-Welcome+to+Spoonerize+--+a+word+game">Welcome to <a href=" | 
| 93 | 
            +
            <h1 id="label-Welcome+to+Spoonerize+--+a+word+game.">Welcome to <a href="Spoonerize.html"><code>Spoonerize</code></a> – a word game.<span><a href="#label-Welcome+to+Spoonerize+--+a+word+game.">¶</a> <a href="#top">↑</a></span></h1>
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            <p><a href="https://actions-badge.atrox.dev/evanthegrayt/spoonerize/goto?ref=master"><img src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fevanthegrayt%2Fspoonerize%2Fbadge%3Fref%3Dmaster&style=flat"></a> <a href="https://badge.fury.io/rb/spoonerize"><img src="https://badge.fury.io/rb/spoonerize.svg"></a> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg"></a></p>
         | 
| 93 96 |  | 
| 94 97 | 
             
            <blockquote>
         | 
| 95 | 
            -
            <p> | 
| 98 | 
            +
            <p>Spoonerism <em>[noun]</em> a verbal error in which a speaker accidentally transposes the initial sounds or letters of two or more words, often to humorous effect.</p>
         | 
| 96 99 | 
             
            </blockquote>
         | 
| 97 100 |  | 
| 98 | 
            -
            <p> | 
| 101 | 
            +
            <p>View on <a href="https://github.com/evanthegrayt/spoonerize">Github</a> | <a href="https://evanthegrayt.github.io/spoonerize/">Github Pages</a> | <a href="https://rubygems.org/gems/spoonerize">RubyGems</a></p>
         | 
| 99 102 |  | 
| 100 103 | 
             
            <h2 id="label-Table+of+Contents">Table of Contents<span><a href="#label-Table+of+Contents">¶</a> <a href="#top">↑</a></span></h2>
         | 
| 101 104 | 
             
            <ul><li>
         | 
| 105 | 
            +
            <p><a href="#about">About</a></p>
         | 
| 106 | 
            +
            </li><li>
         | 
| 102 107 | 
             
            <p><a href="#installation">Installation</a></p>
         | 
| 103 108 | 
             
            </li><li>
         | 
| 104 109 | 
             
            <p><a href="#automated">Automated</a></p>
         | 
| @@ -107,13 +112,34 @@ | |
| 107 112 | 
             
            </li><li>
         | 
| 108 113 | 
             
            <p><a href="#command-line-usage">Command Line Usage</a></p>
         | 
| 109 114 | 
             
            </li><li>
         | 
| 115 | 
            +
            <p><a href="#config-file">Config file</a></p>
         | 
| 116 | 
            +
            </li><li>
         | 
| 110 117 | 
             
            <p><a href="#api">API</a></p>
         | 
| 111 118 | 
             
            </li><li>
         | 
| 112 | 
            -
            <p><a href=" | 
| 119 | 
            +
            <p><a href="https://evanthegrayt.github.io/spoonerize/doc/index.html">Documentation</a></p>
         | 
| 113 120 | 
             
            </li><li>
         | 
| 114 121 | 
             
            <p><a href="#self-promotion">Self-Promotion</a></p>
         | 
| 115 122 | 
             
            </li></ul>
         | 
| 116 123 |  | 
| 124 | 
            +
            <h2 id="label-About">About<span><a href="#label-About">¶</a> <a href="#top">↑</a></span></h2>
         | 
| 125 | 
            +
             | 
| 126 | 
            +
            <p>We've all done it; someone says a phrase, and you flip the first few letters around, and sometimes, it makes an even funnier phrase. For example: “Tomb Raider” becomes “Romb Taider”. Well, when I was in high school, we took it further – probably too far – and made a rule set. This gem, which includes a command-line executable, follows those rules, which are:</p>
         | 
| 127 | 
            +
            <ul><li>
         | 
| 128 | 
            +
            <p>Each word drops its leading consonant group and takes the leading consonant group of the next word.</p>
         | 
| 129 | 
            +
            </li><li>
         | 
| 130 | 
            +
            <p>If the word has no leading consonants, nothing is dropped, but it still receives the next word's leading consonants if it has any.</p>
         | 
| 131 | 
            +
            </li><li>
         | 
| 132 | 
            +
            <p>If the next word has no leading consonants, the current word receives no consonants, but will still lose its own if it has any.</p>
         | 
| 133 | 
            +
            </li><li>
         | 
| 134 | 
            +
            <p>When being “lazy”, common words (“the”, “his”, etc.) remain unchanged.</p>
         | 
| 135 | 
            +
            </li><li>
         | 
| 136 | 
            +
            <p>If the word to pull from is excluded, that word is skipped, and you pull the leading consonants from the next non-excluded word.</p>
         | 
| 137 | 
            +
            </li><li>
         | 
| 138 | 
            +
            <p>“Q” and “U” should stay together (like “queen”).</p>
         | 
| 139 | 
            +
            </li><li>
         | 
| 140 | 
            +
            <p>A lot of the time, the words won't look how they're supposed to sound, as you go by how the word <em>used</em> to sound, not how it's spelled. For instance, <code>$ spoonerize two new cuties</code> becomes “no cew twuties”, but it would be pronounced “new coo tooties”, as the words retain their original sounds.</p>
         | 
| 141 | 
            +
            </li></ul>
         | 
| 142 | 
            +
             | 
| 117 143 | 
             
            <h2 id="label-Installation">Installation<span><a href="#label-Installation">¶</a> <a href="#top">↑</a></span></h2>
         | 
| 118 144 |  | 
| 119 145 | 
             
            <h3 id="label-Automated">Automated<span><a href="#label-Automated">¶</a> <a href="#top">↑</a></span></h3>
         | 
| @@ -152,37 +178,71 @@ ln -s $PWD/bin/spoonerize /usr/local/bin/spoonerize | |
| 152 178 | 
             
            <p>If you find a phrase funny enough to save, you can pass the <code>-s</code> flag. This will write the results to the logfile. You can print your log file with the <code>-p</code> flag. It will show the original phrase, the end result, and the options used to get the results. For example:</p>
         | 
| 153 179 |  | 
| 154 180 | 
             
            <pre>$ spoonerize -s not too shabby
         | 
| 155 | 
            -
            Saving [tot shoo nabby] to / | 
| 181 | 
            +
            Saving [tot shoo nabby] to ~/.cache/spoonerize/spoonerize.csv
         | 
| 156 182 |  | 
| 157 183 | 
             
            $ spoonerize -rs not too shabby
         | 
| 158 | 
            -
            Saving [shot noo tabby] to / | 
| 184 | 
            +
            Saving [shot noo tabby] to ~/.cache/spoonerize/spoonerize.csv
         | 
| 159 185 |  | 
| 160 186 | 
             
            $ spoonerize -p
         | 
| 161 187 | 
             
            not too shabby | tot shoo nabby | No Options
         | 
| 162 188 | 
             
            not too shabby | shot noo tabby | Reverse</pre>
         | 
| 163 189 |  | 
| 164 | 
            -
            <p> | 
| 190 | 
            +
            <p>Here is a list of all available options:</p>
         | 
| 191 | 
            +
             | 
| 192 | 
            +
            <pre>-r, --[no-]reverse               Reverse flipping
         | 
| 193 | 
            +
            -l, --[no-]lazy                  Skip small words
         | 
| 194 | 
            +
            -m, --[no-]map                   Print words mapping
         | 
| 195 | 
            +
            -p, --[no-]print                 Print all entries in the log
         | 
| 196 | 
            +
            -s, --[no-]save                  Save results in log
         | 
| 197 | 
            +
                --exclude=WORDS              Words to skip</pre>
         | 
| 198 | 
            +
             | 
| 199 | 
            +
            <h3 id="label-Config+File">Config File<span><a href="#label-Config+File">¶</a> <a href="#top">↑</a></span></h3>
         | 
| 200 | 
            +
             | 
| 201 | 
            +
            <p>You can create a config file called <code>~/.spoonerize.yml</code>. In this file, you can change default options at runtime. Available settings are:</p>
         | 
| 202 | 
            +
             | 
| 203 | 
            +
            <pre># Setting       Default
         | 
| 204 | 
            +
            excluded_words: []
         | 
| 205 | 
            +
            lazy:           false
         | 
| 206 | 
            +
            reverse:        false
         | 
| 207 | 
            +
            logfile_name:   '~/.cache/spoonerize/spoonerize.csv'</pre>
         | 
| 208 | 
            +
             | 
| 209 | 
            +
            <p>Options set by this file can be overridden at runtime by the use of the executable's flags.</p>
         | 
| 165 210 |  | 
| 166 211 | 
             
            <h2 id="label-API">API<span><a href="#label-API">¶</a> <a href="#top">↑</a></span></h2>
         | 
| 167 212 |  | 
| 168 | 
            -
            <p> | 
| 213 | 
            +
            <p>The API is <a href="https://evanthegrayt.github.io/spoonerize/doc/index.html">fully documented</a>, but below are some quick examples of how you could use this in your ruby code.</p>
         | 
| 169 214 |  | 
| 170 | 
            -
            < | 
| 171 | 
            -
             | 
| 172 | 
            -
            < | 
| 173 | 
            -
            </ | 
| 174 | 
            -
            < | 
| 175 | 
            -
             | 
| 176 | 
            -
            < | 
| 177 | 
            -
            </ | 
| 178 | 
            -
             | 
| 179 | 
            -
            </ | 
| 180 | 
            -
            < | 
| 181 | 
            -
            </ | 
| 182 | 
            -
             | 
| 183 | 
            -
            </ | 
| 184 | 
            -
            < | 
| 185 | 
            -
            </ | 
| 215 | 
            +
            <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'spoonerize'</span>
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            <span class="ruby-identifier">spoonerism</span> = <span class="ruby-constant">Spoonerize</span><span class="ruby-operator">::</span><span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">%w[not too shabby]</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
         | 
| 218 | 
            +
              <span class="ruby-identifier">s</span>.<span class="ruby-identifier">reverse</span> = <span class="ruby-keyword">true</span>
         | 
| 219 | 
            +
            <span class="ruby-keyword">end</span>
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">spoonerize</span>
         | 
| 222 | 
            +
            <span class="ruby-comment"># => shot noo tabby</span>
         | 
| 223 | 
            +
             | 
| 224 | 
            +
            <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">reverse</span> = <span class="ruby-keyword">false</span>
         | 
| 225 | 
            +
            <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">spoonerize</span>
         | 
| 226 | 
            +
            <span class="ruby-comment"># => tot shoo nabby</span>
         | 
| 227 | 
            +
             | 
| 228 | 
            +
            <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">logfile_name</span> = <span class="ruby-string">'~/.cache/spoonerize/spoonerize.csv'</span>
         | 
| 229 | 
            +
            <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">save</span>
         | 
| 230 | 
            +
            </pre>
         | 
| 231 | 
            +
             | 
| 232 | 
            +
            <p>You can also use the <a href="#config-file">config file</a>, either by passing it at initialization, or via the setter. The config file will be automatically loaded if passed at initialization, before the instance is yielded so you can still change the values via the block. If set via the setter, you must call <code>#load_config_file</code>.</p>
         | 
| 233 | 
            +
             | 
| 234 | 
            +
            <pre class="ruby"><span class="ruby-comment"># Config file would be automatically loaded before block is executed.</span>
         | 
| 235 | 
            +
            <span class="ruby-identifier">s</span> = <span class="ruby-constant">Spoonerise</span><span class="ruby-operator">::</span><span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">%w[not too shabby]</span>, <span class="ruby-string">'~/.spoonerize.yml'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sp</span><span class="ruby-operator">|</span>
         | 
| 236 | 
            +
              <span class="ruby-identifier">sp</span>.<span class="ruby-identifier">reverse</span> = <span class="ruby-keyword">true</span>
         | 
| 237 | 
            +
            <span class="ruby-keyword">end</span>
         | 
| 238 | 
            +
             | 
| 239 | 
            +
            <span class="ruby-comment"># Config file would need to be manually loaded.</span>
         | 
| 240 | 
            +
            <span class="ruby-identifier">s</span> = <span class="ruby-constant">Spoonerise</span><span class="ruby-operator">::</span><span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">%w[not too shabby]</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sp</span><span class="ruby-operator">|</span>
         | 
| 241 | 
            +
              <span class="ruby-identifier">sp</span>.<span class="ruby-identifier">config_file</span> = <span class="ruby-string">'~/.spoonerize.yml'</span>
         | 
| 242 | 
            +
            <span class="ruby-keyword">end</span>
         | 
| 243 | 
            +
             | 
| 244 | 
            +
            <span class="ruby-identifier">s</span>.<span class="ruby-identifier">load_config_file</span>
         | 
| 245 | 
            +
            </pre>
         | 
| 186 246 |  | 
| 187 247 | 
             
            <h2 id="label-Self+Promotion">Self Promotion<span><a href="#label-Self+Promotion">¶</a> <a href="#top">↑</a></span></h2>
         | 
| 188 248 |  | 
    
        data/doc/Spoonerize/Cli.html
    CHANGED
    
    | @@ -194,7 +194,7 @@ | |
| 194 194 |  | 
| 195 195 | 
             
                    <div class="method-description">
         | 
| 196 196 |  | 
| 197 | 
            -
                      <p>Creates an instance of <code> | 
| 197 | 
            +
                      <p>Creates an instance of <code>Spoonerism</code> and runs what the user requested.</p>
         | 
| 198 198 |  | 
| 199 199 | 
             
            <p>@param [Array] options</p>
         | 
| 200 200 |  | 
| @@ -299,7 +299,7 @@ | |
| 299 299 |  | 
| 300 300 |  | 
| 301 301 | 
             
                      <div class="method-source-code" id="longest_word_length-source">
         | 
| 302 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 302 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 103</span>
         | 
| 303 303 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">longest_word_length</span>
         | 
| 304 304 | 
             
              <span class="ruby-ivar">@longest_word_length</span> <span class="ruby-operator">||=</span>
         | 
| 305 305 | 
             
                <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">spoonerize</span>.<span class="ruby-identifier">group_by</span>(<span class="ruby-operator">&</span><span class="ruby-value">:size</span>).<span class="ruby-identifier">max</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">size</span>
         | 
| @@ -335,7 +335,7 @@ | |
| 335 335 |  | 
| 336 336 |  | 
| 337 337 | 
             
                      <div class="method-source-code" id="map-3F-source">
         | 
| 338 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 338 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 87</span>
         | 
| 339 339 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">map?</span>
         | 
| 340 340 | 
             
              <span class="ruby-ivar">@map</span>
         | 
| 341 341 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -370,7 +370,7 @@ | |
| 370 370 |  | 
| 371 371 |  | 
| 372 372 | 
             
                      <div class="method-source-code" id="print-3F-source">
         | 
| 373 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 373 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 95</span>
         | 
| 374 374 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">print?</span>
         | 
| 375 375 | 
             
              <span class="ruby-ivar">@print</span>
         | 
| 376 376 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -405,7 +405,7 @@ | |
| 405 405 |  | 
| 406 406 |  | 
| 407 407 | 
             
                      <div class="method-source-code" id="print_log-source">
         | 
| 408 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 408 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 112</span>
         | 
| 409 409 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">print_log</span>
         | 
| 410 410 | 
             
              <span class="ruby-identifier">s</span> = <span class="ruby-constant">Spoonerize</span><span class="ruby-operator">::</span><span class="ruby-constant">Log</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">logfile_name</span>)
         | 
| 411 411 | 
             
              <span class="ruby-identifier">s</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span> <span class="ruby-identifier">print</span> <span class="ruby-identifier">row</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' | '</span>) <span class="ruby-operator">+</span> <span class="ruby-string">"\n"</span> }
         | 
| @@ -441,7 +441,7 @@ | |
| 441 441 |  | 
| 442 442 |  | 
| 443 443 | 
             
                      <div class="method-source-code" id="print_mappings-source">
         | 
| 444 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 444 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 121</span>
         | 
| 445 445 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">print_mappings</span>
         | 
| 446 446 | 
             
              <span class="ruby-identifier">spoonerism</span>.<span class="ruby-identifier">to_h</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-identifier">v</span><span class="ruby-operator">|</span>
         | 
| 447 447 | 
             
                <span class="ruby-identifier">puts</span> <span class="ruby-node">"%-#{longest_word_length}s => %s"</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>]
         | 
| @@ -478,7 +478,7 @@ | |
| 478 478 |  | 
| 479 479 |  | 
| 480 480 | 
             
                      <div class="method-source-code" id="save-3F-source">
         | 
| 481 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line  | 
| 481 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 79</span>
         | 
| 482 482 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">save?</span>
         | 
| 483 483 | 
             
              <span class="ruby-ivar">@save</span>
         | 
| 484 484 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -515,7 +515,8 @@ | |
| 515 515 | 
             
                      <div class="method-source-code" id="spoonerism-source">
         | 
| 516 516 | 
             
                        <pre><span class="ruby-comment"># File lib/spoonerize/cli.rb, line 68</span>
         | 
| 517 517 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spoonerism</span>
         | 
| 518 | 
            -
              <span class="ruby- | 
| 518 | 
            +
              <span class="ruby-identifier">pf</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>(<span class="ruby-constant">PREFERENCE_FILE</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">PREFERENCE_FILE</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
         | 
| 519 | 
            +
              <span class="ruby-ivar">@spoonerism</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">pf</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
         | 
| 519 520 | 
             
                <span class="ruby-identifier">preferences</span>.<span class="ruby-identifier">each</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-identifier">s</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">"#{k}="</span>, <span class="ruby-identifier">v</span>) }
         | 
| 520 521 | 
             
              <span class="ruby-keyword">end</span>
         | 
| 521 522 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -79,10 +79,16 @@ | |
| 79 79 |  | 
| 80 80 | 
             
                <li ><a href="#method-i-all_excluded_words">#all_excluded_words</a>
         | 
| 81 81 |  | 
| 82 | 
            +
                <li ><a href="#method-i-config_file-3D">#config_file=</a>
         | 
| 83 | 
            +
                
         | 
| 84 | 
            +
                <li ><a href="#method-i-config_file_loaded-3F">#config_file_loaded?</a>
         | 
| 85 | 
            +
                
         | 
| 82 86 | 
             
                <li ><a href="#method-i-enough_flippable_words-3F">#enough_flippable_words?</a>
         | 
| 83 87 |  | 
| 84 88 | 
             
                <li ><a href="#method-i-lazy-3F">#lazy?</a>
         | 
| 85 89 |  | 
| 90 | 
            +
                <li ><a href="#method-i-load_config_file">#load_config_file</a>
         | 
| 91 | 
            +
                
         | 
| 86 92 | 
             
                <li ><a href="#method-i-reverse-3F">#reverse?</a>
         | 
| 87 93 |  | 
| 88 94 | 
             
                <li ><a href="#method-i-save">#save</a>
         | 
| @@ -127,6 +133,36 @@ | |
| 127 133 | 
             
                  </header>
         | 
| 128 134 |  | 
| 129 135 |  | 
| 136 | 
            +
                  <div id="attribute-i-config" class="method-detail">
         | 
| 137 | 
            +
                    <div class="method-heading attribute-method-heading">
         | 
| 138 | 
            +
                      <span class="method-name">config</span><span
         | 
| 139 | 
            +
                        class="attribute-access-type">[R]</span>
         | 
| 140 | 
            +
                    </div>
         | 
| 141 | 
            +
             | 
| 142 | 
            +
                    <div class="method-description">
         | 
| 143 | 
            +
                    
         | 
| 144 | 
            +
                    <p>The options from <code>config_file</code> as a hash.</p>
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            <p>@return [Hash] Options from <code>config_file</code></p>
         | 
| 147 | 
            +
                    
         | 
| 148 | 
            +
                    </div>
         | 
| 149 | 
            +
                  </div>
         | 
| 150 | 
            +
                  
         | 
| 151 | 
            +
                  <div id="attribute-i-config_file" class="method-detail">
         | 
| 152 | 
            +
                    <div class="method-heading attribute-method-heading">
         | 
| 153 | 
            +
                      <span class="method-name">config_file</span><span
         | 
| 154 | 
            +
                        class="attribute-access-type">[R]</span>
         | 
| 155 | 
            +
                    </div>
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                    <div class="method-description">
         | 
| 158 | 
            +
                    
         | 
| 159 | 
            +
                    <p>The configuration file. Default is <code>nil</code>. If set to a string, and the file exists, it is used to set options.</p>
         | 
| 160 | 
            +
             | 
| 161 | 
            +
            <p>@return [String] file path</p>
         | 
| 162 | 
            +
                    
         | 
| 163 | 
            +
                    </div>
         | 
| 164 | 
            +
                  </div>
         | 
| 165 | 
            +
                  
         | 
| 130 166 | 
             
                  <div id="attribute-i-excluded_words" class="method-detail">
         | 
| 131 167 | 
             
                    <div class="method-heading attribute-method-heading">
         | 
| 132 168 | 
             
                      <span class="method-name">excluded_words</span><span
         | 
| @@ -224,7 +260,7 @@ | |
| 224 260 |  | 
| 225 261 | 
             
                    <div class="method-heading">
         | 
| 226 262 | 
             
                      <span class="method-name">new</span><span
         | 
| 227 | 
            -
                        class="method-args">(words) { |self| ... }</span>
         | 
| 263 | 
            +
                        class="method-args">(words, config_file = nil) { |self| ... }</span>
         | 
| 228 264 |  | 
| 229 265 | 
             
                      <span class="method-click-advice">click to toggle source</span>
         | 
| 230 266 |  | 
| @@ -233,23 +269,45 @@ | |
| 233 269 |  | 
| 234 270 | 
             
                    <div class="method-description">
         | 
| 235 271 |  | 
| 236 | 
            -
                      <p>Initialize instance  | 
| 272 | 
            +
                      <p>Initialize instance. You can also use the <code>config_file</code> either by passing it at initialization, or via the setter. The config file will be automatically loaded if passed at initialization, before the instance is yielded so you can still change the values via the block. If set via the setter, you must call `#load_config_file`.</p>
         | 
| 237 273 |  | 
| 238 274 | 
             
            <p>@param [Array] words</p>
         | 
| 275 | 
            +
             | 
| 276 | 
            +
            <p>@param [String] <a href="Spoonerism.html#attribute-i-config_file"><code>config_file</code></a></p>
         | 
| 277 | 
            +
             | 
| 278 | 
            +
            <p>@example</p>
         | 
| 279 | 
            +
             | 
| 280 | 
            +
            <pre class="ruby"><span class="ruby-comment"># Config file would be automatically loaded before block is executed.</span>
         | 
| 281 | 
            +
            <span class="ruby-identifier">s</span> = <span class="ruby-constant">Spoonerise</span><span class="ruby-operator">::</span><span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">%w[not too shabby]</span>, <span class="ruby-string">'~/.spoonerize.yml'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sp</span><span class="ruby-operator">|</span>
         | 
| 282 | 
            +
              <span class="ruby-identifier">sp</span>.<span class="ruby-identifier">reverse</span> = <span class="ruby-keyword">true</span> <span class="ruby-comment"># Would override setting from config file</span>
         | 
| 283 | 
            +
            <span class="ruby-keyword">end</span>
         | 
| 284 | 
            +
            <span class="ruby-comment"># Config file would need to be manually loaded.</span>
         | 
| 285 | 
            +
            <span class="ruby-identifier">s</span> = <span class="ruby-constant">Spoonerise</span><span class="ruby-operator">::</span><span class="ruby-constant">Spoonerism</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">%w[not too shabby]</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sp</span><span class="ruby-operator">|</span>
         | 
| 286 | 
            +
              <span class="ruby-identifier">sp</span>.<span class="ruby-identifier">config_file</span> = <span class="ruby-string">'~/.spoonerize.yml'</span>
         | 
| 287 | 
            +
              <span class="ruby-identifier">sp</span>.<span class="ruby-identifier">reverse</span> = <span class="ruby-keyword">true</span>
         | 
| 288 | 
            +
            <span class="ruby-keyword">end</span>
         | 
| 289 | 
            +
            <span class="ruby-identifier">s</span>.<span class="ruby-identifier">load_config_file</span> <span class="ruby-comment"># Would override setting from initialization</span>
         | 
| 290 | 
            +
            </pre>
         | 
| 239 291 |  | 
| 240 292 |  | 
| 241 293 |  | 
| 242 294 |  | 
| 243 295 | 
             
                      <div class="method-source-code" id="new-source">
         | 
| 244 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 245 | 
            -
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">words</span>)
         | 
| 296 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 80</span>
         | 
| 297 | 
            +
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">words</span>, <span class="ruby-identifier">config_file</span> = <span class="ruby-keyword">nil</span>)
         | 
| 298 | 
            +
              <span class="ruby-ivar">@config</span> = {}
         | 
| 246 299 | 
             
              <span class="ruby-ivar">@excluded_words</span> = []
         | 
| 247 300 | 
             
              <span class="ruby-ivar">@words</span> = <span class="ruby-identifier">words</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-value">:downcase</span>)
         | 
| 248 301 | 
             
              <span class="ruby-ivar">@lazy</span> = <span class="ruby-keyword">false</span>
         | 
| 249 302 | 
             
              <span class="ruby-ivar">@reverse</span> = <span class="ruby-keyword">false</span>
         | 
| 303 | 
            +
              <span class="ruby-ivar">@config_file</span> = <span class="ruby-identifier">config_file</span> <span class="ruby-operator">&&</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">config_file</span>)
         | 
| 304 | 
            +
              <span class="ruby-ivar">@config_file_loaded</span> = <span class="ruby-keyword">false</span>
         | 
| 250 305 | 
             
              <span class="ruby-ivar">@logfile_name</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(
         | 
| 251 306 | 
             
                <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-string">'HOME'</span>], <span class="ruby-string">'.cache'</span>, <span class="ruby-string">'spoonerize'</span>, <span class="ruby-string">'spoonerize.csv'</span>)
         | 
| 252 307 | 
             
              )
         | 
| 308 | 
            +
             | 
| 309 | 
            +
              <span class="ruby-identifier">load_config_file</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">config_file</span>
         | 
| 310 | 
            +
             | 
| 253 311 | 
             
              <span class="ruby-keyword">yield</span> <span class="ruby-keyword">self</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
         | 
| 254 312 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| 255 313 | 
             
                      </div>
         | 
| @@ -296,7 +354,7 @@ | |
| 296 354 |  | 
| 297 355 |  | 
| 298 356 | 
             
                      <div class="method-source-code" id="all_excluded_words-source">
         | 
| 299 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 357 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 160</span>
         | 
| 300 358 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">all_excluded_words</span>
         | 
| 301 359 | 
             
              (<span class="ruby-identifier">excluded_words</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">lazy?</span> <span class="ruby-operator">?</span> <span class="ruby-constant">LAZY_WORDS</span> <span class="ruby-operator">:</span> [])).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-value">:downcase</span>)
         | 
| 302 360 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -307,6 +365,78 @@ | |
| 307 365 |  | 
| 308 366 |  | 
| 309 367 |  | 
| 368 | 
            +
                  </div>
         | 
| 369 | 
            +
             | 
| 370 | 
            +
                
         | 
| 371 | 
            +
                  <div id="method-i-config_file-3D" class="method-detail ">
         | 
| 372 | 
            +
                    
         | 
| 373 | 
            +
                    <div class="method-heading">
         | 
| 374 | 
            +
                      <span class="method-name">config_file=</span><span
         | 
| 375 | 
            +
                        class="method-args">(config_file)</span>
         | 
| 376 | 
            +
                      
         | 
| 377 | 
            +
                      <span class="method-click-advice">click to toggle source</span>
         | 
| 378 | 
            +
                      
         | 
| 379 | 
            +
                    </div>
         | 
| 380 | 
            +
                    
         | 
| 381 | 
            +
             | 
| 382 | 
            +
                    <div class="method-description">
         | 
| 383 | 
            +
                      
         | 
| 384 | 
            +
                      <p>Setter for <code>config_file</code>. Must be expanded in case the user uses `~` for home.</p>
         | 
| 385 | 
            +
             | 
| 386 | 
            +
            <p>@param [String] file</p>
         | 
| 387 | 
            +
             | 
| 388 | 
            +
            <p>@return [String]</p>
         | 
| 389 | 
            +
                      
         | 
| 390 | 
            +
                      
         | 
| 391 | 
            +
             | 
| 392 | 
            +
                      
         | 
| 393 | 
            +
                      <div class="method-source-code" id="config_file-3D-source">
         | 
| 394 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 171</span>
         | 
| 395 | 
            +
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">config_file=</span>(<span class="ruby-identifier">config_file</span>)
         | 
| 396 | 
            +
              <span class="ruby-ivar">@config_file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">config_file</span>)
         | 
| 397 | 
            +
            <span class="ruby-keyword">end</span></pre>
         | 
| 398 | 
            +
                      </div>
         | 
| 399 | 
            +
                      
         | 
| 400 | 
            +
                    </div>
         | 
| 401 | 
            +
             | 
| 402 | 
            +
                    
         | 
| 403 | 
            +
             | 
| 404 | 
            +
                    
         | 
| 405 | 
            +
                  </div>
         | 
| 406 | 
            +
             | 
| 407 | 
            +
                
         | 
| 408 | 
            +
                  <div id="method-i-config_file_loaded-3F" class="method-detail ">
         | 
| 409 | 
            +
                    
         | 
| 410 | 
            +
                    <div class="method-heading">
         | 
| 411 | 
            +
                      <span class="method-name">config_file_loaded?</span><span
         | 
| 412 | 
            +
                        class="method-args">()</span>
         | 
| 413 | 
            +
                      
         | 
| 414 | 
            +
                      <span class="method-click-advice">click to toggle source</span>
         | 
| 415 | 
            +
                      
         | 
| 416 | 
            +
                    </div>
         | 
| 417 | 
            +
                    
         | 
| 418 | 
            +
             | 
| 419 | 
            +
                    <div class="method-description">
         | 
| 420 | 
            +
                      
         | 
| 421 | 
            +
                      <p>Has a config file been loaded?</p>
         | 
| 422 | 
            +
             | 
| 423 | 
            +
            <p>@return [Boolean]</p>
         | 
| 424 | 
            +
                      
         | 
| 425 | 
            +
                      
         | 
| 426 | 
            +
             | 
| 427 | 
            +
                      
         | 
| 428 | 
            +
                      <div class="method-source-code" id="config_file_loaded-3F-source">
         | 
| 429 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 127</span>
         | 
| 430 | 
            +
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">config_file_loaded?</span>
         | 
| 431 | 
            +
              <span class="ruby-ivar">@config_file_loaded</span>
         | 
| 432 | 
            +
            <span class="ruby-keyword">end</span></pre>
         | 
| 433 | 
            +
                      </div>
         | 
| 434 | 
            +
                      
         | 
| 435 | 
            +
                    </div>
         | 
| 436 | 
            +
             | 
| 437 | 
            +
                    
         | 
| 438 | 
            +
             | 
| 439 | 
            +
                    
         | 
| 310 440 | 
             
                  </div>
         | 
| 311 441 |  | 
| 312 442 |  | 
| @@ -329,7 +459,7 @@ | |
| 329 459 |  | 
| 330 460 |  | 
| 331 461 | 
             
                      <div class="method-source-code" id="enough_flippable_words-3F-source">
         | 
| 332 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 462 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 133</span>
         | 
| 333 463 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">enough_flippable_words?</span>
         | 
| 334 464 | 
             
              (<span class="ruby-identifier">words</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">all_excluded_words</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span>
         | 
| 335 465 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -362,7 +492,7 @@ | |
| 362 492 |  | 
| 363 493 |  | 
| 364 494 | 
             
                      <div class="method-source-code" id="lazy-3F-source">
         | 
| 365 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 495 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 139</span>
         | 
| 366 496 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">lazy?</span>
         | 
| 367 497 | 
             
              <span class="ruby-ivar">@lazy</span>
         | 
| 368 498 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -373,6 +503,45 @@ | |
| 373 503 |  | 
| 374 504 |  | 
| 375 505 |  | 
| 506 | 
            +
                  </div>
         | 
| 507 | 
            +
             | 
| 508 | 
            +
                
         | 
| 509 | 
            +
                  <div id="method-i-load_config_file" class="method-detail ">
         | 
| 510 | 
            +
                    
         | 
| 511 | 
            +
                    <div class="method-heading">
         | 
| 512 | 
            +
                      <span class="method-name">load_config_file</span><span
         | 
| 513 | 
            +
                        class="method-args">()</span>
         | 
| 514 | 
            +
                      
         | 
| 515 | 
            +
                      <span class="method-click-advice">click to toggle source</span>
         | 
| 516 | 
            +
                      
         | 
| 517 | 
            +
                    </div>
         | 
| 518 | 
            +
                    
         | 
| 519 | 
            +
             | 
| 520 | 
            +
                    <div class="method-description">
         | 
| 521 | 
            +
                      
         | 
| 522 | 
            +
                      <p>Loads the config file</p>
         | 
| 523 | 
            +
             | 
| 524 | 
            +
            <p>@return [Hash] The config options</p>
         | 
| 525 | 
            +
                      
         | 
| 526 | 
            +
                      
         | 
| 527 | 
            +
             | 
| 528 | 
            +
                      
         | 
| 529 | 
            +
                      <div class="method-source-code" id="load_config_file-source">
         | 
| 530 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 179</span>
         | 
| 531 | 
            +
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_config_file</span>
         | 
| 532 | 
            +
              <span class="ruby-identifier">raise</span> <span class="ruby-string">'No config file set'</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">config_file</span>.<span class="ruby-identifier">nil?</span>
         | 
| 533 | 
            +
              <span class="ruby-identifier">raise</span> <span class="ruby-node">"File #{config_file} does not exist"</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>(<span class="ruby-identifier">config_file</span>)
         | 
| 534 | 
            +
              <span class="ruby-ivar">@config</span> = <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">config_file</span>)
         | 
| 535 | 
            +
              <span class="ruby-ivar">@config_file_loaded</span> = <span class="ruby-keyword">true</span>
         | 
| 536 | 
            +
              <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">each</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-identifier">send</span>(<span class="ruby-node">"#{k}="</span>, <span class="ruby-identifier">v</span>) }
         | 
| 537 | 
            +
            <span class="ruby-keyword">end</span></pre>
         | 
| 538 | 
            +
                      </div>
         | 
| 539 | 
            +
                      
         | 
| 540 | 
            +
                    </div>
         | 
| 541 | 
            +
             | 
| 542 | 
            +
                    
         | 
| 543 | 
            +
             | 
| 544 | 
            +
                    
         | 
| 376 545 | 
             
                  </div>
         | 
| 377 546 |  | 
| 378 547 |  | 
| @@ -395,7 +564,7 @@ | |
| 395 564 |  | 
| 396 565 |  | 
| 397 566 | 
             
                      <div class="method-source-code" id="reverse-3F-source">
         | 
| 398 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 567 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 145</span>
         | 
| 399 568 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">reverse?</span>
         | 
| 400 569 | 
             
              <span class="ruby-ivar">@reverse</span>
         | 
| 401 570 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -428,7 +597,7 @@ | |
| 428 597 |  | 
| 429 598 |  | 
| 430 599 | 
             
                      <div class="method-source-code" id="save-source">
         | 
| 431 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 600 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 151</span>
         | 
| 432 601 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">save</span>
         | 
| 433 602 | 
             
              <span class="ruby-identifier">log</span>.<span class="ruby-identifier">write</span>([<span class="ruby-identifier">words</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</span>), <span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">options</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">', '</span>)])
         | 
| 434 603 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -461,7 +630,7 @@ | |
| 461 630 |  | 
| 462 631 |  | 
| 463 632 | 
             
                      <div class="method-source-code" id="spoonerize-source">
         | 
| 464 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 633 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 100</span>
         | 
| 465 634 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spoonerize</span>
         | 
| 466 635 | 
             
              <span class="ruby-identifier">raise</span> <span class="ruby-constant">JakPibError</span>, <span class="ruby-string">'Not enough words to flip'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">enough_flippable_words?</span>
         | 
| 467 636 | 
             
              <span class="ruby-identifier">words</span>.<span class="ruby-identifier">map</span>.<span class="ruby-identifier">with_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">word</span>, <span class="ruby-identifier">idx</span><span class="ruby-operator">|</span> <span class="ruby-identifier">flip_words</span>(<span class="ruby-identifier">word</span>, <span class="ruby-identifier">idx</span>) }
         | 
| @@ -495,7 +664,7 @@ | |
| 495 664 |  | 
| 496 665 |  | 
| 497 666 | 
             
                      <div class="method-source-code" id="to_h-source">
         | 
| 498 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 667 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 113</span>
         | 
| 499 668 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_h</span>
         | 
| 500 669 | 
             
              <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">words</span>.<span class="ruby-identifier">zip</span>(<span class="ruby-identifier">spoonerize</span>)]
         | 
| 501 670 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -528,7 +697,7 @@ | |
| 528 697 |  | 
| 529 698 |  | 
| 530 699 | 
             
                      <div class="method-source-code" id="to_json-source">
         | 
| 531 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 700 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 119</span>
         | 
| 532 701 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_json</span>
         | 
| 533 702 | 
             
              <span class="ruby-identifier">to_h</span>.<span class="ruby-identifier">to_json</span>
         | 
| 534 703 | 
             
            <span class="ruby-keyword">end</span></pre>
         | 
| @@ -561,7 +730,7 @@ | |
| 561 730 |  | 
| 562 731 |  | 
| 563 732 | 
             
                      <div class="method-source-code" id="to_s-source">
         | 
| 564 | 
            -
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line  | 
| 733 | 
            +
                        <pre><span class="ruby-comment"># File lib/spoonerize/spoonerism.rb, line 107</span>
         | 
| 565 734 | 
             
            <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_s</span>
         | 
| 566 735 | 
             
              <span class="ruby-identifier">spoonerize</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</span>)
         | 
| 567 736 | 
             
            <span class="ruby-keyword">end</span></pre>
         |