spoonerize 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ruby.yml +24 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +7 -0
  5. data/LICENSE +21 -0
  6. data/README.md +106 -0
  7. data/Rakefile +19 -0
  8. data/_config.yml +1 -0
  9. data/bin/spoonerize +5 -0
  10. data/doc/README_md.html +200 -0
  11. data/doc/Spoonerize/Bumper.html +287 -0
  12. data/doc/Spoonerize/Cli.html +544 -0
  13. data/doc/Spoonerize/Log.html +362 -0
  14. data/doc/Spoonerize/Spoonerism.html +590 -0
  15. data/doc/Spoonerize.html +125 -0
  16. data/doc/created.rid +8 -0
  17. data/doc/css/fonts.css +167 -0
  18. data/doc/css/rdoc.css +619 -0
  19. data/doc/fonts/Lato-Light.ttf +0 -0
  20. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  21. data/doc/fonts/Lato-Regular.ttf +0 -0
  22. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  23. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  24. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  25. data/doc/images/add.png +0 -0
  26. data/doc/images/arrow_up.png +0 -0
  27. data/doc/images/brick.png +0 -0
  28. data/doc/images/brick_link.png +0 -0
  29. data/doc/images/bug.png +0 -0
  30. data/doc/images/bullet_black.png +0 -0
  31. data/doc/images/bullet_toggle_minus.png +0 -0
  32. data/doc/images/bullet_toggle_plus.png +0 -0
  33. data/doc/images/date.png +0 -0
  34. data/doc/images/delete.png +0 -0
  35. data/doc/images/find.png +0 -0
  36. data/doc/images/loadingAnimation.gif +0 -0
  37. data/doc/images/macFFBgHack.png +0 -0
  38. data/doc/images/package.png +0 -0
  39. data/doc/images/page_green.png +0 -0
  40. data/doc/images/page_white_text.png +0 -0
  41. data/doc/images/page_white_width.png +0 -0
  42. data/doc/images/plugin.png +0 -0
  43. data/doc/images/ruby.png +0 -0
  44. data/doc/images/tag_blue.png +0 -0
  45. data/doc/images/tag_green.png +0 -0
  46. data/doc/images/transparent.png +0 -0
  47. data/doc/images/wrench.png +0 -0
  48. data/doc/images/wrench_orange.png +0 -0
  49. data/doc/images/zoom.png +0 -0
  50. data/doc/index.html +203 -0
  51. data/doc/js/darkfish.js +84 -0
  52. data/doc/js/navigation.js +105 -0
  53. data/doc/js/navigation.js.gz +0 -0
  54. data/doc/js/search.js +110 -0
  55. data/doc/js/search_index.js +1 -0
  56. data/doc/js/search_index.js.gz +0 -0
  57. data/doc/js/searcher.js +229 -0
  58. data/doc/js/searcher.js.gz +0 -0
  59. data/doc/table_of_contents.html +242 -0
  60. data/lib/config/lazy_words.yml +21 -0
  61. data/lib/spoonerize/bumper.rb +61 -0
  62. data/lib/spoonerize/cli.rb +158 -0
  63. data/lib/spoonerize/log.rb +68 -0
  64. data/lib/spoonerize/spoonerism.rb +166 -0
  65. data/lib/spoonerize/version.rb +5 -0
  66. data/lib/spoonerize.rb +21 -0
  67. data/pkg/spoonerize-0.0.7.gem +0 -0
  68. data/spoonerize.gemspec +38 -0
  69. metadata +154 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c887f63e01d902734fb320a70c601f47b106df4a0aa7d947c81bd0526551888a
4
+ data.tar.gz: 655efdb264c515d783593ac758108aeb7cd007bfa57eb330116821879aaa0900
5
+ SHA512:
6
+ metadata.gz: b845888c7a817fcf82a0bda6b8b30511360fb8eb3418fb54ced28cda89945dcf86554352b79c40d9bec457625dcc09341e84080f56da3bb57bd0b71d54591abc
7
+ data.tar.gz: 4ff21e42bc4b4a9f0ec6acde250e1337ed1029ab9f6beb844b1c7d98d65d3f1b126e6901f5472125e76bf5e71bf943c6a51a698c0cfd2e9ca0309ac3938358e9
@@ -0,0 +1,24 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby 2.6
17
+ uses: actions/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.6.x
20
+ - name: Build and test with Rake
21
+ run: |
22
+ gem install bundler
23
+ bundle install
24
+ bundle exec rake test
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ spoonerise-*.gem
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
6
+
7
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 Evan Gray
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,106 @@
1
+ # Welcome to [Spoonerize](https://evanthegrayt.github.io/spoonerize) -- a word game
2
+ > Sponerism *[noun]* a verbal error in which a speaker accidentally transposes
3
+ > the initial sounds or letters of two or more words, often to humorous effect.
4
+
5
+ We've all done it; someone says a phrase, and you flip the first few letters
6
+ around, and sometimes, it makes an even funnier phrase. For example:
7
+ "Tomb Raider" becomes "Romb Taider".
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.
10
+
11
+ ## Table of Contents
12
+ - [Installation](#installation)
13
+ - [Automated](#automated)
14
+ - [Manual](#manual)
15
+ - [Command Line Usage](#command-line-usage)
16
+ - [API](#api)
17
+ - [Rules of the Game](#rules-of-the-game)
18
+ - [Self-Promotion](#self-promotion)
19
+
20
+ ## Installation
21
+ ### Automated
22
+ Just install the gem!
23
+
24
+ ```sh
25
+ gem install spoonerize
26
+ ```
27
+
28
+ If you don't have permission on your system to install ruby or gems, I recommend
29
+ using
30
+ [rbenv](http://www.rubyinside.com/rbenv-a-simple-new-ruby-version-management-tool-5302.html),
31
+ or you can try the manual methods below.
32
+
33
+
34
+ ### Manual
35
+ From your terminal, clone the repository where you want it. From there, you have
36
+ a couple of installation options.
37
+
38
+ ```sh
39
+ git clone https://github.com/evanthegrayt/spoonerize.git
40
+ cd spoonerize
41
+
42
+ # Use rake to build and install the gem.
43
+ rake install
44
+
45
+ # OR manually link the executable somewhere. If you use this method, you cannot
46
+ # move the repository after you link it!
47
+ ln -s $PWD/bin/spoonerize /usr/local/bin/spoonerize
48
+ ```
49
+
50
+ ## Command Line Usage
51
+ Call the executable and pass a phrase as arguments:
52
+
53
+ ```sh
54
+ $ spoonerize not too shabby # => tot shoo nabby
55
+ ```
56
+
57
+ If it didn't flip the way you wanted it to, you can reverse it:
58
+
59
+ ```sh
60
+ $ spoonerize -r not too shabby # => shot noo tabby
61
+ ```
62
+
63
+ If you find a phrase funny enough to save, you can pass the `-s` flag. This will
64
+ write the results to the logfile. You can print your log file with the `-p`
65
+ flag. It will show the original phrase, the end result, and the options used to
66
+ get the results. For example:
67
+
68
+ ```
69
+ $ spoonerize -s not too shabby
70
+ Saving [tot shoo nabby] to /Users/evan.gray/workflow/spoonerize/log/spoonerize.csv
71
+
72
+ $ spoonerize -rs not too shabby
73
+ Saving [shot noo tabby] to /Users/evan.gray/workflow/spoonerize/log/spoonerize.csv
74
+
75
+ $ spoonerize -p
76
+ not too shabby | tot shoo nabby | No Options
77
+ not too shabby | shot noo tabby | Reverse
78
+ ```
79
+
80
+ To get a list of all available options, run with `-h`.
81
+
82
+ ## API
83
+ This readme isn't finished, but you can view [API
84
+ documentation](https://evanthegrayt.github.io/spoonerize/doc/index.html).
85
+
86
+ ## Rules of the Game
87
+ - Each word drops its leading consonant group and takes the leading consonant
88
+ group of the next word.
89
+ - If the word has no leading consonants, nothing is dropped, but it still
90
+ receives the next word's leading consonants if it has any.
91
+ - If the next word has no leading consonants, the current word receives no
92
+ consonants, but will still lose its own if it has any.
93
+ - When being "lazy", common words ("the", "his", etc.) remain unchanged.
94
+ - If the word to pull from is excluded, that word is skipped, and you pull the
95
+ leading consonants from the next non-excluded word.
96
+ - "Q" and "U" should stay together (like "queen").
97
+ - A lot of the time, the words won't look how they're supposed to sound, as you
98
+ go by how the word *used* to sound, not how it's spelled. For instance,
99
+ `$ spoonerize two new cuties` becomes "no cew twuties", but it would be
100
+ pronounced "new coo tooties", as the words retain their original sounds.
101
+
102
+ ## Self Promotion
103
+ I do these projects for fun, and I enjoy knowing that they're helpful to people.
104
+ Consider starring [the repository](https://github.com/evanthegrayt/spoonerize)
105
+ if you like it! If you love it, follow me [on
106
+ github](https://github.com/evanthegrayt)!
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ require_relative 'lib/spoonerize'
2
+ require 'bundler/gem_tasks'
3
+ require 'rdoc/task'
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs = ['lib']
8
+ t.warning = true
9
+ t.verbose = true
10
+ t.test_files = FileList['test/**/*_test.rb']
11
+ end
12
+
13
+ RDoc::Task.new do |rdoc|
14
+ rdoc.main = 'README.md'
15
+ rdoc.rdoc_dir = 'doc'
16
+ rdoc.rdoc_files.include('README.md', 'lib/**/*.rb')
17
+ end
18
+
19
+ task :default => :test
data/_config.yml ADDED
@@ -0,0 +1 @@
1
+ theme: jekyll-theme-midnight
data/bin/spoonerize ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/spoonerize'
4
+
5
+ Spoonerize::Cli.execute(ARGV)
@@ -0,0 +1,200 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>README - RDoc Documentation</title>
8
+
9
+ <script type="text/javascript">
10
+ var rdoc_rel_prefix = "./";
11
+ var index_rel_prefix = "./";
12
+ </script>
13
+
14
+ <script src="./js/navigation.js" defer></script>
15
+ <script src="./js/search.js" defer></script>
16
+ <script src="./js/search_index.js" defer></script>
17
+ <script src="./js/searcher.js" defer></script>
18
+ <script src="./js/darkfish.js" defer></script>
19
+
20
+ <link href="./css/fonts.css" rel="stylesheet">
21
+ <link href="./css/rdoc.css" rel="stylesheet">
22
+
23
+
24
+
25
+
26
+ <body id="top" role="document" class="file">
27
+ <nav role="navigation">
28
+ <div id="project-navigation">
29
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
30
+ <h2>
31
+ <a href="./index.html" rel="home">Home</a>
32
+ </h2>
33
+
34
+ <div id="table-of-contents-navigation">
35
+ <a href="./table_of_contents.html#pages">Pages</a>
36
+ <a href="./table_of_contents.html#classes">Classes</a>
37
+ <a href="./table_of_contents.html#methods">Methods</a>
38
+ </div>
39
+ </div>
40
+
41
+ <div id="search-section" role="search" class="project-section initially-hidden">
42
+ <form action="#" method="get" accept-charset="utf-8">
43
+ <div id="search-field-wrapper">
44
+ <input id="search-field" role="combobox" aria-label="Search"
45
+ aria-autocomplete="list" aria-controls="search-results"
46
+ type="text" name="search" placeholder="Search" spellcheck="false"
47
+ title="Type to search, Up and Down to navigate, Enter to load">
48
+ </div>
49
+
50
+ <ul id="search-results" aria-label="Search Results"
51
+ aria-busy="false" aria-expanded="false"
52
+ aria-atomic="false" class="initially-hidden"></ul>
53
+ </form>
54
+ </div>
55
+
56
+ </div>
57
+
58
+
59
+ <div class="nav-section">
60
+ <h3>Table of Contents</h3>
61
+
62
+ <ul class="link-list" role="directory">
63
+ <li><a href="#label-Welcome+to+Spoonerize+--+a+word+game">Welcome to <a href="https://evanthegrayt.github.io/spoonerize">Spoonerize</a> – a word game</a>
64
+ <li><a href="#label-Table+of+Contents">Table of Contents</a>
65
+ <li><a href="#label-Installation">Installation</a>
66
+ <li><a href="#label-Automated">Automated</a>
67
+ <li><a href="#label-Manual">Manual</a>
68
+ <li><a href="#label-Command+Line+Usage">Command Line Usage</a>
69
+ <li><a href="#label-API">API</a>
70
+ <li><a href="#label-Rules+of+the+Game">Rules of the Game</a>
71
+ <li><a href="#label-Self+Promotion">Self Promotion</a>
72
+ </ul>
73
+ </div>
74
+
75
+
76
+ <div id="project-metadata">
77
+ <div id="fileindex-section" class="nav-section">
78
+ <h3>Pages</h3>
79
+
80
+ <ul class="link-list">
81
+
82
+ <li><a href="./README_md.html">README</a>
83
+
84
+ </ul>
85
+ </div>
86
+
87
+ </div>
88
+ </nav>
89
+
90
+ <main role="main" aria-label="Page README.md">
91
+
92
+ <h1 id="label-Welcome+to+Spoonerize+--+a+word+game">Welcome to <a href="https://evanthegrayt.github.io/spoonerize">Spoonerize</a> – a word game<span><a href="#label-Welcome+to+Spoonerize+--+a+word+game">&para;</a> <a href="#top">&uarr;</a></span></h1>
93
+
94
+ <blockquote>
95
+ <p>Sponerism <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
+ </blockquote>
97
+
98
+ <p>We&#39;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 program follows those rules, which are listed below.</p>
99
+
100
+ <h2 id="label-Table+of+Contents">Table of Contents<span><a href="#label-Table+of+Contents">&para;</a> <a href="#top">&uarr;</a></span></h2>
101
+ <ul><li>
102
+ <p><a href="#installation">Installation</a></p>
103
+ </li><li>
104
+ <p><a href="#automated">Automated</a></p>
105
+ </li><li>
106
+ <p><a href="#manual">Manual</a></p>
107
+ </li><li>
108
+ <p><a href="#command-line-usage">Command Line Usage</a></p>
109
+ </li><li>
110
+ <p><a href="#api">API</a></p>
111
+ </li><li>
112
+ <p><a href="#rules-of-the-game">Rules of the Game</a></p>
113
+ </li><li>
114
+ <p><a href="#self-promotion">Self-Promotion</a></p>
115
+ </li></ul>
116
+
117
+ <h2 id="label-Installation">Installation<span><a href="#label-Installation">&para;</a> <a href="#top">&uarr;</a></span></h2>
118
+
119
+ <h3 id="label-Automated">Automated<span><a href="#label-Automated">&para;</a> <a href="#top">&uarr;</a></span></h3>
120
+
121
+ <p>Just install the gem!</p>
122
+
123
+ <pre class="ruby"><span class="ruby-identifier">gem</span> <span class="ruby-identifier">install</span> <span class="ruby-identifier">spoonerize</span>
124
+ </pre>
125
+
126
+ <p>If you don&#39;t have permission on your system to install ruby or gems, I recommend using <a href="http://www.rubyinside.com/rbenv-a-simple-new-ruby-version-management-tool-5302.html">rbenv</a>, or you can try the manual methods below.</p>
127
+
128
+ <h3 id="label-Manual">Manual<span><a href="#label-Manual">&para;</a> <a href="#top">&uarr;</a></span></h3>
129
+
130
+ <p>From your terminal, clone the repository where you want it. From there, you have a couple of installation options.</p>
131
+
132
+ <pre>git clone https://github.com/evanthegrayt/spoonerize.git
133
+ cd spoonerize
134
+
135
+ # Use rake to build and install the gem.
136
+ rake install
137
+
138
+ # OR manually link the executable somewhere. If you use this method, you cannot
139
+ # move the repository after you link it!
140
+ ln -s $PWD/bin/spoonerize /usr/local/bin/spoonerize</pre>
141
+
142
+ <h2 id="label-Command+Line+Usage">Command Line Usage<span><a href="#label-Command+Line+Usage">&para;</a> <a href="#top">&uarr;</a></span></h2>
143
+
144
+ <p>Call the executable and pass a phrase as arguments:</p>
145
+
146
+ <pre>$ spoonerize not too shabby # =&gt; tot shoo nabby</pre>
147
+
148
+ <p>If it didn&#39;t flip the way you wanted it to, you can reverse it:</p>
149
+
150
+ <pre>$ spoonerize -r not too shabby # =&gt; shot noo tabby</pre>
151
+
152
+ <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
+
154
+ <pre>$ spoonerize -s not too shabby
155
+ Saving [tot shoo nabby] to /Users/evan.gray/workflow/spoonerize/log/spoonerize.csv
156
+
157
+ $ spoonerize -rs not too shabby
158
+ Saving [shot noo tabby] to /Users/evan.gray/workflow/spoonerize/log/spoonerize.csv
159
+
160
+ $ spoonerize -p
161
+ not too shabby | tot shoo nabby | No Options
162
+ not too shabby | shot noo tabby | Reverse</pre>
163
+
164
+ <p>To get a list of all available options, run with <code>-h</code>.</p>
165
+
166
+ <h2 id="label-API">API<span><a href="#label-API">&para;</a> <a href="#top">&uarr;</a></span></h2>
167
+
168
+ <p>This readme isn&#39;t finished, but you can view <a href="https://evanthegrayt.github.io/spoonerize/doc/index.html">API documentation</a>.</p>
169
+
170
+ <h2 id="label-Rules+of+the+Game">Rules of the Game<span><a href="#label-Rules+of+the+Game">&para;</a> <a href="#top">&uarr;</a></span></h2>
171
+ <ul><li>
172
+ <p>Each word drops its leading consonant group and takes the leading consonant group of the next word.</p>
173
+ </li><li>
174
+ <p>If the word has no leading consonants, nothing is dropped, but it still receives the next word&#39;s leading consonants if it has any.</p>
175
+ </li><li>
176
+ <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>
177
+ </li><li>
178
+ <p>When being “lazy”, common words (“the”, “his”, etc.) remain unchanged.</p>
179
+ </li><li>
180
+ <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>
181
+ </li><li>
182
+ <p>“Q” and “U” should stay together (like “queen”).</p>
183
+ </li><li>
184
+ <p>A lot of the time, the words won&#39;t look how they&#39;re supposed to sound, as you go by how the word <em>used</em> to sound, not how it&#39;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>
185
+ </li></ul>
186
+
187
+ <h2 id="label-Self+Promotion">Self Promotion<span><a href="#label-Self+Promotion">&para;</a> <a href="#top">&uarr;</a></span></h2>
188
+
189
+ <p>I do these projects for fun, and I enjoy knowing that they&#39;re helpful to people. Consider starring <a href="https://github.com/evanthegrayt/spoonerize">the repository</a> if you like it! If you love it, follow me <a href="https://github.com/evanthegrayt">on github</a>!</p>
190
+
191
+ </main>
192
+
193
+
194
+
195
+ <footer id="validator-badges" role="contentinfo">
196
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
197
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.
198
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
199
+ </footer>
200
+