shenanigans 1.0.6 → 1.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.
data/doc/Array.html CHANGED
@@ -109,6 +109,8 @@
109
109
 
110
110
  <li><a href="./Object.html">Object</a>
111
111
 
112
+ <li><a href="./String.html">String</a>
113
+
112
114
  </ul>
113
115
  </nav>
114
116
 
data/doc/Fixnum.html CHANGED
@@ -103,6 +103,8 @@
103
103
 
104
104
  <li><a href="./Object.html">Object</a>
105
105
 
106
+ <li><a href="./String.html">String</a>
107
+
106
108
  </ul>
107
109
  </nav>
108
110
 
data/doc/Hash.html CHANGED
@@ -109,6 +109,8 @@
109
109
 
110
110
  <li><a href="./Object.html">Object</a>
111
111
 
112
+ <li><a href="./String.html">String</a>
113
+
112
114
  </ul>
113
115
  </nav>
114
116
 
data/doc/Kernel.html CHANGED
@@ -103,6 +103,8 @@
103
103
 
104
104
  <li><a href="./Object.html">Object</a>
105
105
 
106
+ <li><a href="./String.html">String</a>
107
+
106
108
  </ul>
107
109
  </nav>
108
110
 
data/doc/Object.html CHANGED
@@ -108,6 +108,8 @@
108
108
 
109
109
  <li><a href="./Object.html">Object</a>
110
110
 
111
+ <li><a href="./String.html">String</a>
112
+
111
113
  </ul>
112
114
  </nav>
113
115
 
data/doc/README_rdoc.html CHANGED
@@ -69,6 +69,8 @@
69
69
 
70
70
  <li><a href="./Object.html">Object</a>
71
71
 
72
+ <li><a href="./String.html">String</a>
73
+
72
74
  </ul>
73
75
  </nav>
74
76
 
data/doc/String.html ADDED
@@ -0,0 +1,191 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>class String - Shenanigans</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
28
+ <a href="./table_of_contents.html#classes">Classes</a>
29
+ <a href="./table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/shenanigans/string/in_groups_of.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link"><a href="Object.html">Object</a>
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-i-in_groups_of">#in_groups_of</a>
74
+
75
+ </ul>
76
+ </nav>
77
+
78
+ </div>
79
+
80
+ <div id="project-metadata">
81
+ <nav id="fileindex-section" class="section project-section">
82
+ <h3 class="section-header">Pages</h3>
83
+
84
+ <ul>
85
+
86
+ <li class="file"><a href="./README_rdoc.html">README</a>
87
+
88
+ </ul>
89
+ </nav>
90
+
91
+ <nav id="classindex-section" class="section project-section">
92
+ <h3 class="section-header">Class and Module Index</h3>
93
+
94
+ <ul class="link-list">
95
+
96
+ <li><a href="./Array.html">Array</a>
97
+
98
+ <li><a href="./Fixnum.html">Fixnum</a>
99
+
100
+ <li><a href="./Hash.html">Hash</a>
101
+
102
+ <li><a href="./Kernel.html">Kernel</a>
103
+
104
+ <li><a href="./Object.html">Object</a>
105
+
106
+ <li><a href="./String.html">String</a>
107
+
108
+ </ul>
109
+ </nav>
110
+
111
+ </div>
112
+ </nav>
113
+
114
+ <div id="documentation">
115
+ <h1 class="class">class String</h1>
116
+
117
+ <div id="description" class="description">
118
+
119
+ </div><!-- description -->
120
+
121
+
122
+
123
+
124
+ <section id="5Buntitled-5D" class="documentation-section">
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ <!-- Methods -->
134
+
135
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
136
+ <h3 class="section-header">Public Instance Methods</h3>
137
+
138
+
139
+ <div id="method-i-in_groups_of" class="method-detail ">
140
+
141
+ <div class="method-heading">
142
+ <span class="method-name">in_groups_of</span><span
143
+ class="method-args">(size)</span>
144
+ <span class="method-click-advice">click to toggle source</span>
145
+ </div>
146
+
147
+
148
+ <div class="method-description">
149
+
150
+ <p>Returns an array of the string broken down into groups of <code>size</code>
151
+ characters.</p>
152
+
153
+ <pre class="ruby"><span class="ruby-string">&quot;aabbcc&quot;</span>.<span class="ruby-identifier">in_groups_of</span>(<span class="ruby-value">2</span>)
154
+ <span class="ruby-comment">#=&gt; ['aa', 'bb', 'cc']</span>
155
+ <span class="ruby-string">&quot;&quot;</span>.<span class="ruby-identifier">in_groups_of</span>(<span class="ruby-value">2</span>)
156
+ <span class="ruby-comment">#=&gt; []</span>
157
+ <span class="ruby-string">&quot;&quot;</span>.<span class="ruby-identifier">in_groups_of</span>(<span class="ruby-value">0</span>)
158
+ <span class="ruby-comment">#=&gt; ArgumentError</span>
159
+ </pre>
160
+
161
+
162
+
163
+ <div class="method-source-code" id="in_groups_of-source">
164
+ <pre><span class="ruby-comment"># File lib/shenanigans/string/in_groups_of.rb, line 10</span>
165
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">in_groups_of</span>(<span class="ruby-identifier">size</span>)
166
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">&quot;Size of group must be &gt;= 1&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
167
+ <span class="ruby-identifier">scan</span>(<span class="ruby-node">%r.{1,#{size}}/</span>)
168
+ <span class="ruby-keyword">end</span></pre>
169
+ </div><!-- in_groups_of-source -->
170
+
171
+ </div>
172
+
173
+
174
+
175
+
176
+ </div><!-- in_groups_of-method -->
177
+
178
+
179
+ </section><!-- public-instance-method-details -->
180
+
181
+ </section><!-- 5Buntitled-5D -->
182
+
183
+ </div><!-- documentation -->
184
+
185
+
186
+ <footer id="validator-badges">
187
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
188
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
189
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
190
+ </footer>
191
+
data/doc/created.rid CHANGED
@@ -1,4 +1,4 @@
1
- Thu, 09 Aug 2012 18:48:00 +0200
1
+ Mon, 20 Aug 2012 18:53:22 +0200
2
2
  README.rdoc Thu, 17 May 2012 11:45:08 +0200
3
3
  lib/shenanigans/array/caret.rb Thu, 28 Jun 2012 09:15:50 +0200
4
4
  lib/shenanigans/array/random_subarray.rb Thu, 17 May 2012 00:03:23 +0200
@@ -8,7 +8,7 @@ lib/shenanigans/fixnum/string_length.rb Sun, 15 Jul 2012 00:00:21 +0200
8
8
  lib/shenanigans/fixnum.rb Sat, 14 Jul 2012 23:49:59 +0200
9
9
  lib/shenanigans/hash/extract.rb Thu, 09 Aug 2012 18:47:48 +0200
10
10
  lib/shenanigans/hash/has_shape_pred.rb Tue, 19 Jun 2012 21:25:03 +0200
11
- lib/shenanigans/hash/to_ostruct.rb Tue, 26 Jun 2012 21:24:42 +0200
11
+ lib/shenanigans/hash/to_ostruct.rb Mon, 13 Aug 2012 17:56:35 +0200
12
12
  lib/shenanigans/hash.rb Thu, 09 Aug 2012 18:32:30 +0200
13
13
  lib/shenanigans/kernel/fn.rb Wed, 16 May 2012 23:57:36 +0200
14
14
  lib/shenanigans/kernel/prompt.rb Thu, 17 May 2012 00:10:42 +0200
@@ -17,4 +17,6 @@ lib/shenanigans/kernel.rb Wed, 16 May 2012 20:49:22 +0200
17
17
  lib/shenanigans/object/display.rb Fri, 25 May 2012 17:29:45 +0200
18
18
  lib/shenanigans/object/it.rb Thu, 28 Jun 2012 09:07:56 +0200
19
19
  lib/shenanigans/object.rb Thu, 28 Jun 2012 09:10:12 +0200
20
+ lib/shenanigans/string/in_groups_of.rb Mon, 20 Aug 2012 18:53:19 +0200
21
+ lib/shenanigans/string.rb Mon, 20 Aug 2012 18:29:46 +0200
20
22
  lib/shenanigans.rb Sat, 14 Jul 2012 23:53:13 +0200
data/doc/index.html CHANGED
@@ -69,6 +69,8 @@
69
69
 
70
70
  <li><a href="./Object.html">Object</a>
71
71
 
72
+ <li><a href="./String.html">String</a>
73
+
72
74
  </ul>
73
75
  </nav>
74
76
 
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["array","fixnum","hash","kernel","object","^()","d()","display()","extract()","fn()","has_shape?()","it()","prompt()","random_subarray()","string_length()","to_ostruct()","with()","zip_with()","readme"],"longSearchIndex":["array","fixnum","hash","kernel","object","array#^()","object#d()","object#display()","hash#extract()","kernel#fn()","hash#has_shape?()","object#it()","kernel#prompt()","array#random_subarray()","fixnum#string_length()","hash#to_ostruct()","kernel#with()","array#zip_with()",""],"info":[["Array","","Array.html","",""],["Fixnum","","Fixnum.html","",""],["Hash","","Hash.html","",""],["Kernel","","Kernel.html","",""],["Object","","Object.html","",""],["^","Array","Array.html#method-i-5E","(other)","<p>Returns an array containing elements exclusive between two arrays.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">3</span>] <span class=\"ruby-operator\">^</span> [<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">4</span>]\n<span class=\"ruby-comment\">#=&gt; [3, 4]</span>\n</pre>\n"],["d","Object","Object.html#method-i-d","(new_line = true)",""],["display","Object","Object.html#method-i-display","(new_line = true)","<p>Outputs the object and also returns it. Will use <code>puts</code> if\n<code>new_line</code> is <code>true</code> and <code>print</code>\notherwise.\n\n<pre>&quot;foo&quot;.display ...</pre>\n"],["extract","Hash","Hash.html#method-i-extract","(*ks)","<p>Returns a new hash only with the specified keys (if present).\n\n<pre>hash = { a: 1, b: 2, c: 3 }\nhash.extract(:b, ...</pre>\n"],["fn","Kernel","Kernel.html#method-i-fn","(*funs)","<p>Composes a list of functions. Functions can be specified as symbols or\nlambdas.\n\n<pre>[&quot;foo bar&quot;, &quot;baz qux&quot;].map ...</pre>\n"],["has_shape?","Hash","Hash.html#method-i-has_shape-3F","(shape)","<p>Checks if a hash has a certain structure.\n\n<pre>h = { k1: 1, k2: &quot;1&quot; }\nh.has_shape?(k1: Fixnum, k2: String) ...</pre>\n"],["it","Object","Object.html#method-i-it","()","<p>An identity method that provides access to an object’s <code>self</code>.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>,<span class=\"ruby-value\">4</span>,<span class=\"ruby-value\">5</span>,<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>].<span class=\"ruby-identifier\">group_by</span>(&amp;:<span class=\"ruby-identifier\">it</span>)\n<span class=\"ruby-comment\">#=&gt; {1=&gt;[1, ...</span>\n</pre>\n"],["prompt","Kernel","Kernel.html#method-i-prompt","(text='', conversion=nil)","<p>Displays a prompt and returns chomped input. Modelled after the Python\nmethod <code>raw_input</code>, but also can …\n"],["random_subarray","Array","Array.html#method-i-random_subarray","(n=1)","<p>Generates random subarrays. Uses random numbers and bit-fiddling to assure\nperformant uniform distributions …\n"],["string_length","Fixnum","Fixnum.html#method-i-string_length","()","<p>Returns the length of the number’s string representation.\n\n<pre class=\"ruby\"><span class=\"ruby-value\">0</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=&gt; 1</span>\n<span class=\"ruby-value\">123</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=&gt; ...</span>\n</pre>\n"],["to_ostruct","Hash","Hash.html#method-i-to_ostruct","()","<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es\nto <code>OpenStruct</code>s. Especially useful for parsing YAML …\n"],["with","Kernel","Kernel.html#method-i-with","(o, &blk)","<p>A Pascal/ActionScript like <code>with</code> method. Yields its argument to\nthe provided block and then returns it. …\n"],["zip_with","Array","Array.html#method-i-zip_with","(other, op=nil)","<p>Zip <code>self</code> with <code>other</code>, combining the elements with\nthe provided block or symbol. The resulting array will …\n"],["README","","README_rdoc.html","","<p>Shenanigans\n<p><strong>shenanigan</strong> (plural shenanigans):\n<p>Trickery, games; skulduggery. To “call”, “claim” …\n"]]}}
1
+ var search_data = {"index":{"searchIndex":["array","fixnum","hash","kernel","object","string","^()","d()","display()","extract()","fn()","has_shape?()","in_groups_of()","it()","prompt()","random_subarray()","string_length()","to_ostruct()","with()","zip_with()","readme"],"longSearchIndex":["array","fixnum","hash","kernel","object","string","array#^()","object#d()","object#display()","hash#extract()","kernel#fn()","hash#has_shape?()","string#in_groups_of()","object#it()","kernel#prompt()","array#random_subarray()","fixnum#string_length()","hash#to_ostruct()","kernel#with()","array#zip_with()",""],"info":[["Array","","Array.html","",""],["Fixnum","","Fixnum.html","",""],["Hash","","Hash.html","",""],["Kernel","","Kernel.html","",""],["Object","","Object.html","",""],["String","","String.html","",""],["^","Array","Array.html#method-i-5E","(other)","<p>Returns an array containing elements exclusive between two arrays.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">3</span>] <span class=\"ruby-operator\">^</span> [<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">4</span>]\n<span class=\"ruby-comment\">#=&gt; [3, 4]</span>\n</pre>\n"],["d","Object","Object.html#method-i-d","(new_line = true)",""],["display","Object","Object.html#method-i-display","(new_line = true)","<p>Outputs the object and also returns it. Will use <code>puts</code> if\n<code>new_line</code> is <code>true</code> and <code>print</code>\notherwise.\n\n<pre>&quot;foo&quot;.display ...</pre>\n"],["extract","Hash","Hash.html#method-i-extract","(*ks)","<p>Returns a new hash only with the specified keys (if present).\n\n<pre>hash = { a: 1, b: 2, c: 3 }\nhash.extract(:b, ...</pre>\n"],["fn","Kernel","Kernel.html#method-i-fn","(*funs)","<p>Composes a list of functions. Functions can be specified as symbols or\nlambdas.\n\n<pre>[&quot;foo bar&quot;, &quot;baz qux&quot;].map ...</pre>\n"],["has_shape?","Hash","Hash.html#method-i-has_shape-3F","(shape)","<p>Checks if a hash has a certain structure.\n\n<pre>h = { k1: 1, k2: &quot;1&quot; }\nh.has_shape?(k1: Fixnum, k2: String) ...</pre>\n"],["in_groups_of","String","String.html#method-i-in_groups_of","(size)","<p>Returns an array of the string broken down into groups of <code>size</code>\ncharacters.\n\n<pre class=\"ruby\"><span class=\"ruby-string\">&quot;aabbcc&quot;</span>.<span class=\"ruby-identifier\">in_groups_of</span>(<span class=\"ruby-value\">2</span>)\n<span class=\"ruby-comment\">#=&gt; ...</span>\n</pre>\n"],["it","Object","Object.html#method-i-it","()","<p>An identity method that provides access to an object’s <code>self</code>.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>,<span class=\"ruby-value\">4</span>,<span class=\"ruby-value\">5</span>,<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>].<span class=\"ruby-identifier\">group_by</span>(&amp;:<span class=\"ruby-identifier\">it</span>)\n<span class=\"ruby-comment\">#=&gt; {1=&gt;[1, ...</span>\n</pre>\n"],["prompt","Kernel","Kernel.html#method-i-prompt","(text='', conversion=nil)","<p>Displays a prompt and returns chomped input. Modelled after the Python\nmethod <code>raw_input</code>, but also can …\n"],["random_subarray","Array","Array.html#method-i-random_subarray","(n=1)","<p>Generates random subarrays. Uses random numbers and bit-fiddling to assure\nperformant uniform distributions …\n"],["string_length","Fixnum","Fixnum.html#method-i-string_length","()","<p>Returns the length of the number’s string representation.\n\n<pre class=\"ruby\"><span class=\"ruby-value\">0</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=&gt; 1</span>\n<span class=\"ruby-value\">123</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=&gt; ...</span>\n</pre>\n"],["to_ostruct","Hash","Hash.html#method-i-to_ostruct","()","<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es\nto <code>OpenStruct</code>s. Especially useful for parsing YAML …\n"],["with","Kernel","Kernel.html#method-i-with","(o, &blk)","<p>A Pascal/ActionScript like <code>with</code> method. Yields its argument to\nthe provided block and then returns it. …\n"],["zip_with","Array","Array.html#method-i-zip_with","(other, op=nil)","<p>Zip <code>self</code> with <code>other</code>, combining the elements with\nthe provided block or symbol. The resulting array will …\n"],["README","","README_rdoc.html","","<p>Shenanigans\n<p><strong>shenanigan</strong> (plural shenanigans):\n<p>Trickery, games; skulduggery. To “call”, “claim” …\n"]]}}
@@ -59,6 +59,9 @@
59
59
  <li class="class">
60
60
  <a href="Object.html">Object</a>
61
61
  </li>
62
+ <li class="class">
63
+ <a href="String.html">String</a>
64
+ </li>
62
65
 
63
66
  </ul>
64
67
 
@@ -77,6 +80,8 @@
77
80
 
78
81
  <li class="method"><a href="Hash.html#method-i-has_shape-3F">#has_shape? &mdash; Hash</a>
79
82
 
83
+ <li class="method"><a href="String.html#method-i-in_groups_of">#in_groups_of &mdash; String</a>
84
+
80
85
  <li class="method"><a href="Object.html#method-i-it">#it &mdash; Object</a>
81
86
 
82
87
  <li class="method"><a href="Kernel.html#method-i-prompt">#prompt &mdash; Kernel</a>
@@ -0,0 +1 @@
1
+ require_relative "string/in_groups_of"
@@ -0,0 +1,14 @@
1
+ class String
2
+ # Returns an array of the string broken down into groups of
3
+ # <tt>size</tt> characters.
4
+ # "aabbcc".in_groups_of(2)
5
+ # #=> ['aa', 'bb', 'cc']
6
+ # "".in_groups_of(2)
7
+ # #=> []
8
+ # "".in_groups_of(0)
9
+ # #=> ArgumentError
10
+ def in_groups_of(size)
11
+ raise ArgumentError, "Size of group must be >= 1" if size < 1
12
+ scan(/.{1,#{size}}/)
13
+ end
14
+ end
@@ -13,7 +13,8 @@ class ToOstruct < MiniTest::Unit::TestCase
13
13
  end
14
14
 
15
15
  def test_nested_array
16
- struct = {a: 1, b: [{c: 2}]}.to_ostruct
16
+ struct = {a: 1, b: [{c: 2}, 5]}.to_ostruct
17
17
  assert struct.b.first.c == 2
18
+ assert struct.b.last == 5
18
19
  end
19
20
  end
@@ -0,0 +1,36 @@
1
+ require 'minitest/autorun'
2
+ require 'shenanigans/object/display'
3
+ require 'stringio'
4
+
5
+ class Display < MiniTest::Unit::TestCase
6
+ def setup
7
+ @orig_stdout = $stdout
8
+ $stdout = StringIO.new("", "r+")
9
+ end
10
+
11
+ def teardown
12
+ $stdout = @orig_stdout
13
+ end
14
+
15
+ def test_display
16
+ str = "foo"
17
+ assert str.display == str
18
+ $stdout.rewind
19
+ assert $stdout.gets.chomp == str
20
+ end
21
+
22
+ def test_display_alias
23
+ str = "foo"
24
+ assert str.d == str
25
+ $stdout.rewind
26
+ assert $stdout.gets.chomp == str
27
+ end
28
+
29
+ def test_display_no_new_line
30
+ str = "foo"
31
+ assert str.display(false) == str
32
+ $stdout.rewind
33
+ assert $stdout.gets == str
34
+ end
35
+
36
+ end
@@ -0,0 +1,11 @@
1
+ require 'minitest/autorun'
2
+ require 'shenanigans/string/in_groups_of'
3
+
4
+ class InGroupsOf < MiniTest::Unit::TestCase
5
+ def test_in_groups_of
6
+ str = "aabbcc"
7
+ assert str.in_groups_of(2) == ['aa', 'bb', 'cc']
8
+ assert "".in_groups_of(2) == []
9
+ assert_raises(ArgumentError) { "".in_groups_of(0) }
10
+ end
11
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shenanigans
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-09 00:00:00.000000000 Z
12
+ date: 2012-08-20 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: citizen428@gmail.com
@@ -59,6 +59,7 @@ files:
59
59
  - doc/Object.html
60
60
  - doc/rdoc.css
61
61
  - doc/README_rdoc.html
62
+ - doc/String.html
62
63
  - doc/table_of_contents.html
63
64
  - lib/shenanigans/array/caret.rb
64
65
  - lib/shenanigans/array/random_subarray.rb
@@ -78,6 +79,8 @@ files:
78
79
  - lib/shenanigans/object/it.rb
79
80
  - lib/shenanigans/object.rb
80
81
  - lib/shenanigans/README.mdown
82
+ - lib/shenanigans/string/in_groups_of.rb
83
+ - lib/shenanigans/string.rb
81
84
  - lib/shenanigans.rb
82
85
  - test/array/test_caret.rb
83
86
  - test/array/test_random_subarray.rb
@@ -91,7 +94,9 @@ files:
91
94
  - test/kernel/test_with.rb
92
95
  - test/object/test_display.rb
93
96
  - test/object/test_it.rb
94
- homepage: https://github.com/citizen428/shenanigans
97
+ - test/string/test_display.rb
98
+ - test/string/test_in_groups_of.rb
99
+ homepage: http://rubydoc.info/gems/shenanigans/frames
95
100
  licenses: []
96
101
  post_install_message:
97
102
  rdoc_options: []