aastdlib 0.0.3

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.
Files changed (80) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +39 -0
  5. data/Rakefile +6 -0
  6. data/aastdlib.gemspec +37 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/doc/Aastdlib.html +110 -0
  10. data/doc/Array.html +164 -0
  11. data/doc/Dir.html +96 -0
  12. data/doc/Gemfile.html +95 -0
  13. data/doc/Hash.html +197 -0
  14. data/doc/Integer.html +162 -0
  15. data/doc/LICENSE_txt.html +112 -0
  16. data/doc/Object.html +501 -0
  17. data/doc/README_md.html +155 -0
  18. data/doc/Rakefile.html +96 -0
  19. data/doc/String.html +1240 -0
  20. data/doc/Symbol.html +197 -0
  21. data/doc/aastdlib_gemspec.html +127 -0
  22. data/doc/bin/setup.html +96 -0
  23. data/doc/created.rid +19 -0
  24. data/doc/css/fonts.css +167 -0
  25. data/doc/css/rdoc.css +590 -0
  26. data/doc/fonts/Lato-Light.ttf +0 -0
  27. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  28. data/doc/fonts/Lato-Regular.ttf +0 -0
  29. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  30. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  31. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  32. data/doc/images/add.png +0 -0
  33. data/doc/images/arrow_up.png +0 -0
  34. data/doc/images/brick.png +0 -0
  35. data/doc/images/brick_link.png +0 -0
  36. data/doc/images/bug.png +0 -0
  37. data/doc/images/bullet_black.png +0 -0
  38. data/doc/images/bullet_toggle_minus.png +0 -0
  39. data/doc/images/bullet_toggle_plus.png +0 -0
  40. data/doc/images/date.png +0 -0
  41. data/doc/images/delete.png +0 -0
  42. data/doc/images/find.png +0 -0
  43. data/doc/images/loadingAnimation.gif +0 -0
  44. data/doc/images/macFFBgHack.png +0 -0
  45. data/doc/images/package.png +0 -0
  46. data/doc/images/page_green.png +0 -0
  47. data/doc/images/page_white_text.png +0 -0
  48. data/doc/images/page_white_width.png +0 -0
  49. data/doc/images/plugin.png +0 -0
  50. data/doc/images/ruby.png +0 -0
  51. data/doc/images/tag_blue.png +0 -0
  52. data/doc/images/tag_green.png +0 -0
  53. data/doc/images/transparent.png +0 -0
  54. data/doc/images/wrench.png +0 -0
  55. data/doc/images/wrench_orange.png +0 -0
  56. data/doc/images/zoom.png +0 -0
  57. data/doc/index.html +114 -0
  58. data/doc/js/darkfish.js +161 -0
  59. data/doc/js/jquery.js +4 -0
  60. data/doc/js/navigation.js +142 -0
  61. data/doc/js/navigation.js.gz +0 -0
  62. data/doc/js/search.js +109 -0
  63. data/doc/js/search_index.js +1 -0
  64. data/doc/js/search_index.js.gz +0 -0
  65. data/doc/js/searcher.js +229 -0
  66. data/doc/js/searcher.js.gz +0 -0
  67. data/doc/table_of_contents.html +282 -0
  68. data/lib/aastdlib.rb +12 -0
  69. data/lib/aastdlib/array.rb +20 -0
  70. data/lib/aastdlib/file.rb +23 -0
  71. data/lib/aastdlib/hash.rb +22 -0
  72. data/lib/aastdlib/integer.rb +16 -0
  73. data/lib/aastdlib/object.rb +200 -0
  74. data/lib/aastdlib/string.rb +377 -0
  75. data/lib/aastdlib/symbol.rb +19 -0
  76. data/lib/aastdlib/version.rb +3 -0
  77. data/pkg/aastdlib-0.0.0.gem +0 -0
  78. data/pkg/aastdlib-0.0.1.gem +0 -0
  79. data/pkg/aastdlib-0.0.2.gem +0 -0
  80. metadata +179 -0
@@ -0,0 +1,155 @@
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/jquery.js"></script>
15
+ <script src="./js/darkfish.js"></script>
16
+
17
+ <link href="./css/fonts.css" rel="stylesheet">
18
+ <link href="./css/rdoc.css" rel="stylesheet">
19
+
20
+
21
+
22
+ <body id="top" role="document" class="file">
23
+ <nav role="navigation">
24
+ <div id="project-navigation">
25
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
26
+ <h2>
27
+ <a href="./index.html" rel="home">Home</a>
28
+ </h2>
29
+
30
+ <div id="table-of-contents-navigation">
31
+ <a href="./table_of_contents.html#pages">Pages</a>
32
+ <a href="./table_of_contents.html#classes">Classes</a>
33
+ <a href="./table_of_contents.html#methods">Methods</a>
34
+ </div>
35
+ </div>
36
+
37
+ <div id="search-section" role="search" class="project-section initially-hidden">
38
+ <form action="#" method="get" accept-charset="utf-8">
39
+ <div id="search-field-wrapper">
40
+ <input id="search-field" role="combobox" aria-label="Search"
41
+ aria-autocomplete="list" aria-controls="search-results"
42
+ type="text" name="search" placeholder="Search" spellcheck="false"
43
+ title="Type to search, Up and Down to navigate, Enter to load">
44
+ </div>
45
+
46
+ <ul id="search-results" aria-label="Search Results"
47
+ aria-busy="false" aria-expanded="false"
48
+ aria-atomic="false" class="initially-hidden"></ul>
49
+ </form>
50
+ </div>
51
+
52
+ </div>
53
+
54
+
55
+ <div class="nav-section">
56
+ <h3>Table of Contents</h3>
57
+
58
+ <ul class="link-list" role="directory">
59
+ <li><a href="#label-Aastdlib">Aastdlib</a>
60
+ <li><a href="#label-Installation">Installation</a>
61
+ <li><a href="#label-Usage">Usage</a>
62
+ <li><a href="#label-Development">Development</a>
63
+ <li><a href="#label-Contributing">Contributing</a>
64
+ <li><a href="#label-License">License</a>
65
+ </ul>
66
+ </div>
67
+
68
+
69
+ <div id="project-metadata">
70
+ <div id="fileindex-section" class="nav-section">
71
+ <h3>Pages</h3>
72
+
73
+ <ul class="link-list">
74
+
75
+ <li><a href="./Gemfile.html">Gemfile</a>
76
+
77
+ <li><a href="./LICENSE_txt.html">LICENSE</a>
78
+
79
+ <li><a href="./README_md.html">README</a>
80
+
81
+ <li><a href="./Rakefile.html">Rakefile</a>
82
+
83
+ <li><a href="./aastdlib_gemspec.html">aastdlib.gemspec</a>
84
+
85
+ <li><a href="./bin/setup.html">setup</a>
86
+
87
+ </ul>
88
+ </div>
89
+
90
+ </div>
91
+ </nav>
92
+
93
+ <main role="main" aria-label="Page README.md">
94
+
95
+ <h1 id="label-Aastdlib"><a href="Aastdlib.html">Aastdlib</a><span><a href="#label-Aastdlib">&para;</a> <a href="#top">&uarr;</a></span></h1>
96
+
97
+ <p>Welcome to your new gem! In this directory, you&#39;ll find the files you
98
+ need to be able to package up your Ruby library into a gem. Put your Ruby
99
+ code in the file <code>lib/aastdlib</code>. To experiment with that code,
100
+ run <code>bin/console</code> for an interactive prompt.</p>
101
+
102
+ <p>TODO: Delete this and the text above, and describe your gem</p>
103
+
104
+ <h2 id="label-Installation">Installation<span><a href="#label-Installation">&para;</a> <a href="#top">&uarr;</a></span></h2>
105
+
106
+ <p>Add this line to your application&#39;s Gemfile:</p>
107
+
108
+ <pre class="ruby"><span class="ruby-identifier">gem</span> <span class="ruby-string">&#39;aastdlib&#39;</span>
109
+ </pre>
110
+
111
+ <p>And then execute:</p>
112
+
113
+ <pre>$ bundle</pre>
114
+
115
+ <p>Or install it yourself as:</p>
116
+
117
+ <pre>$ gem install aastdlib</pre>
118
+
119
+ <h2 id="label-Usage">Usage<span><a href="#label-Usage">&para;</a> <a href="#top">&uarr;</a></span></h2>
120
+
121
+ <p>TODO: Write usage instructions here</p>
122
+
123
+ <h2 id="label-Development">Development<span><a href="#label-Development">&para;</a> <a href="#top">&uarr;</a></span></h2>
124
+
125
+ <p>After checking out the repo, run <code>bin/setup</code> to install
126
+ dependencies. Then, run <code>rake spec</code> to run the tests. You can
127
+ also run <code>bin/console</code> for an interactive prompt that will allow
128
+ you to experiment.</p>
129
+
130
+ <p>To install this gem onto your local machine, run <code>bundle exec rake
131
+ install</code>. To release a new version, update the version number in
132
+ <code>version.rb</code>, and then run <code>bundle exec rake
133
+ release</code>, which will create a git tag for the version, push git
134
+ commits and tags, and push the <code>.gem</code> file to <a
135
+ href="https://rubygems.org">rubygems.org</a>.</p>
136
+
137
+ <h2 id="label-Contributing">Contributing<span><a href="#label-Contributing">&para;</a> <a href="#top">&uarr;</a></span></h2>
138
+
139
+ <p>Bug reports and pull requests are welcome on GitHub at <a
140
+ href="https://github.com/[USERNAME]/aastdlib">github.com/[USERNAME]/aastdlib</a>.</p>
141
+
142
+ <h2 id="label-License">License<span><a href="#label-License">&para;</a> <a href="#top">&uarr;</a></span></h2>
143
+
144
+ <p>The gem is available as open source under the terms of the <a
145
+ href="http://opensource.org/licenses/MIT">MIT License</a>.</p>
146
+ </main>
147
+
148
+
149
+
150
+ <footer id="validator-badges" role="contentinfo">
151
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
152
+ <p>Generated by <a href="https://rdoc.github.io/rdoc">RDoc</a> 5.1.0.
153
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
154
+ </footer>
155
+
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>Rakefile - 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/jquery.js"></script>
15
+ <script src="./js/darkfish.js"></script>
16
+
17
+ <link href="./css/fonts.css" rel="stylesheet">
18
+ <link href="./css/rdoc.css" rel="stylesheet">
19
+
20
+
21
+
22
+ <body id="top" role="document" class="file">
23
+ <nav role="navigation">
24
+ <div id="project-navigation">
25
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
26
+ <h2>
27
+ <a href="./index.html" rel="home">Home</a>
28
+ </h2>
29
+
30
+ <div id="table-of-contents-navigation">
31
+ <a href="./table_of_contents.html#pages">Pages</a>
32
+ <a href="./table_of_contents.html#classes">Classes</a>
33
+ <a href="./table_of_contents.html#methods">Methods</a>
34
+ </div>
35
+ </div>
36
+
37
+ <div id="search-section" role="search" class="project-section initially-hidden">
38
+ <form action="#" method="get" accept-charset="utf-8">
39
+ <div id="search-field-wrapper">
40
+ <input id="search-field" role="combobox" aria-label="Search"
41
+ aria-autocomplete="list" aria-controls="search-results"
42
+ type="text" name="search" placeholder="Search" spellcheck="false"
43
+ title="Type to search, Up and Down to navigate, Enter to load">
44
+ </div>
45
+
46
+ <ul id="search-results" aria-label="Search Results"
47
+ aria-busy="false" aria-expanded="false"
48
+ aria-atomic="false" class="initially-hidden"></ul>
49
+ </form>
50
+ </div>
51
+
52
+ </div>
53
+
54
+
55
+
56
+ <div id="project-metadata">
57
+ <div id="fileindex-section" class="nav-section">
58
+ <h3>Pages</h3>
59
+
60
+ <ul class="link-list">
61
+
62
+ <li><a href="./Gemfile.html">Gemfile</a>
63
+
64
+ <li><a href="./LICENSE_txt.html">LICENSE</a>
65
+
66
+ <li><a href="./README_md.html">README</a>
67
+
68
+ <li><a href="./Rakefile.html">Rakefile</a>
69
+
70
+ <li><a href="./aastdlib_gemspec.html">aastdlib.gemspec</a>
71
+
72
+ <li><a href="./bin/setup.html">setup</a>
73
+
74
+ </ul>
75
+ </div>
76
+
77
+ </div>
78
+ </nav>
79
+
80
+ <main role="main" aria-label="Page Rakefile">
81
+
82
+ <p>require “bundler/gem_tasks” require “rspec/core/rake_task”</p>
83
+
84
+ <p>RSpec::Core::RakeTask.new(:spec)</p>
85
+
86
+ <p>task :default =&gt; :spec</p>
87
+ </main>
88
+
89
+
90
+
91
+ <footer id="validator-badges" role="contentinfo">
92
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
93
+ <p>Generated by <a href="https://rdoc.github.io/rdoc">RDoc</a> 5.1.0.
94
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
95
+ </footer>
96
+
@@ -0,0 +1,1240 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class String - 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/jquery.js"></script>
15
+ <script src="./js/darkfish.js"></script>
16
+
17
+ <link href="./css/fonts.css" rel="stylesheet">
18
+ <link href="./css/rdoc.css" rel="stylesheet">
19
+
20
+
21
+
22
+ <body id="top" role="document" class="class">
23
+ <nav role="navigation">
24
+ <div id="project-navigation">
25
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
26
+ <h2>
27
+ <a href="./index.html" rel="home">Home</a>
28
+ </h2>
29
+
30
+ <div id="table-of-contents-navigation">
31
+ <a href="./table_of_contents.html#pages">Pages</a>
32
+ <a href="./table_of_contents.html#classes">Classes</a>
33
+ <a href="./table_of_contents.html#methods">Methods</a>
34
+ </div>
35
+ </div>
36
+
37
+ <div id="search-section" role="search" class="project-section initially-hidden">
38
+ <form action="#" method="get" accept-charset="utf-8">
39
+ <div id="search-field-wrapper">
40
+ <input id="search-field" role="combobox" aria-label="Search"
41
+ aria-autocomplete="list" aria-controls="search-results"
42
+ type="text" name="search" placeholder="Search" spellcheck="false"
43
+ title="Type to search, Up and Down to navigate, Enter to load">
44
+ </div>
45
+
46
+ <ul id="search-results" aria-label="Search Results"
47
+ aria-busy="false" aria-expanded="false"
48
+ aria-atomic="false" class="initially-hidden"></ul>
49
+ </form>
50
+ </div>
51
+
52
+ </div>
53
+
54
+
55
+
56
+ <div id="class-metadata">
57
+
58
+ <div id="parent-class-section" class="nav-section">
59
+ <h3>Parent</h3>
60
+
61
+
62
+ <p class="link"><a href="Object.html">Object</a>
63
+
64
+ </div>
65
+
66
+
67
+
68
+ <!-- Method Quickref -->
69
+ <div id="method-list-section" class="nav-section">
70
+ <h3>Methods</h3>
71
+
72
+ <ul class="link-list" role="directory">
73
+
74
+ <li ><a href="#method-c-generate_all_hex_values">::generate_all_hex_values</a>
75
+
76
+ <li ><a href="#method-i-bin_to_array">#bin_to_array</a>
77
+
78
+ <li ><a href="#method-i-borderize">#borderize</a>
79
+
80
+ <li ><a href="#method-i-decode64">#decode64</a>
81
+
82
+ <li ><a href="#method-i-obfuscate_case">#obfuscate_case</a>
83
+
84
+ <li ><a href="#method-i-obfuscate_string_insert">#obfuscate_string_insert</a>
85
+
86
+ <li ><a href="#method-i-prefix">#prefix</a>
87
+
88
+ <li ><a href="#method-i-prettyfi">#prettyfi</a>
89
+
90
+ <li ><a href="#method-i-prettyfi_shellcode">#prettyfi_shellcode</a>
91
+
92
+ <li ><a href="#method-i-rando_insert">#rando_insert</a>
93
+
94
+ <li ><a href="#method-i-simple_prefix">#simple_prefix</a>
95
+
96
+ <li ><a href="#method-i-snake_name">#snake_name</a>
97
+
98
+ <li ><a href="#method-i-suffix">#suffix</a>
99
+
100
+ <li ><a href="#method-i-to_base64">#to_base64</a>
101
+
102
+ <li ><a href="#method-i-to_binary">#to_binary</a>
103
+
104
+ <li ><a href="#method-i-to_csv_value">#to_csv_value</a>
105
+
106
+ <li ><a href="#method-i-to_hex_string">#to_hex_string</a>
107
+
108
+ <li ><a href="#method-i-to_instance_variable_name">#to_instance_variable_name</a>
109
+
110
+ <li ><a href="#method-i-to_ivar_name">#to_ivar_name</a>
111
+
112
+ <li ><a href="#method-i-to_underscore">#to_underscore</a>
113
+
114
+ <li ><a href="#method-i-to_url_encoded">#to_url_encoded</a>
115
+
116
+ <li ><a href="#method-i-to_utf16">#to_utf16</a>
117
+
118
+ <li ><a href="#method-i-to_utf8">#to_utf8</a>
119
+
120
+ <li ><a href="#method-i-utf_pad">#utf_pad</a>
121
+
122
+ <li ><a href="#method-i-wrap">#wrap</a>
123
+
124
+ </ul>
125
+ </div>
126
+
127
+ </div>
128
+ </nav>
129
+
130
+ <main role="main" aria-labelledby="class-String">
131
+ <h1 id="class-String" class="class">
132
+ class String
133
+ </h1>
134
+
135
+ <section class="description">
136
+
137
+ <p>Extension of the <a href="String.html">String</a> class.</p>
138
+
139
+ </section>
140
+
141
+
142
+
143
+
144
+ <section id="5Buntitled-5D" class="documentation-section">
145
+
146
+
147
+
148
+
149
+
150
+ <section class="constants-list">
151
+ <header>
152
+ <h3>Constants</h3>
153
+ </header>
154
+ <dl>
155
+
156
+ <dt id="HEX_VALUES">HEX_VALUES
157
+
158
+ <dd>
159
+
160
+
161
+ </dl>
162
+ </section>
163
+
164
+
165
+
166
+
167
+
168
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
169
+ <header>
170
+ <h3>Public Class Methods</h3>
171
+ </header>
172
+
173
+
174
+ <div id="method-c-generate_all_hex_values" class="method-detail ">
175
+
176
+ <div class="method-heading">
177
+ <span class="method-name">generate_all_hex_values</span><span
178
+ class="method-args">(upcase=true)</span>
179
+
180
+ <span class="method-click-advice">click to toggle source</span>
181
+
182
+ </div>
183
+
184
+
185
+ <div class="method-description">
186
+
187
+ <p>generate all hex values and return them in a string</p>
188
+
189
+
190
+
191
+
192
+ <div class="method-source-code" id="generate_all_hex_values-source">
193
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 26</span>
194
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">generate_all_hex_values</span>(<span class="ruby-identifier">upcase</span>=<span class="ruby-keyword">true</span>)
195
+
196
+ <span class="ruby-identifier">s</span> = <span class="ruby-string">&quot;&quot;</span>
197
+
198
+ <span class="ruby-value">256</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span>
199
+
200
+ <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value">16</span>)
201
+ <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">upcase</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">upcase</span>
202
+ <span class="ruby-identifier">n</span> = <span class="ruby-string">&#39;0&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">n</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">2</span>
203
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&#39;\x&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">n</span>
204
+
205
+ <span class="ruby-keyword">end</span>
206
+
207
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">s</span>
208
+
209
+ <span class="ruby-keyword">end</span></pre>
210
+ </div>
211
+
212
+ </div>
213
+
214
+
215
+
216
+
217
+ </div>
218
+
219
+
220
+ </section>
221
+
222
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
223
+ <header>
224
+ <h3>Public Instance Methods</h3>
225
+ </header>
226
+
227
+
228
+ <div id="method-i-bin_to_array" class="method-detail ">
229
+
230
+ <div class="method-heading">
231
+ <span class="method-name">bin_to_array</span><span
232
+ class="method-args">(upcase: true, radix: 16)</span>
233
+
234
+ <span class="method-click-advice">click to toggle source</span>
235
+
236
+ </div>
237
+
238
+
239
+ <div class="method-description">
240
+
241
+ <p>Return the string as an array of base 16 values. Base can be altered by
242
+ updating the <em>radix</em> argument.</p>
243
+
244
+
245
+
246
+
247
+ <div class="method-source-code" id="bin_to_array-source">
248
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 228</span>
249
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">bin_to_array</span>(<span class="ruby-identifier">upcase</span><span class="ruby-operator">:</span> <span class="ruby-keyword">true</span>, <span class="ruby-identifier">radix</span><span class="ruby-operator">:</span> <span class="ruby-value">16</span>)
250
+
251
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bytes</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
252
+
253
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">upcase</span>
254
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">radix</span>).<span class="ruby-identifier">upcase</span>
255
+ <span class="ruby-keyword">else</span>
256
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">radix</span>)
257
+ <span class="ruby-keyword">end</span>
258
+
259
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">2</span>
260
+ <span class="ruby-identifier">b</span> = <span class="ruby-string">&#39;0&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">b</span>
261
+ <span class="ruby-keyword">else</span>
262
+ <span class="ruby-identifier">b</span>
263
+ <span class="ruby-keyword">end</span>
264
+
265
+ <span class="ruby-keyword">end</span>
266
+
267
+ <span class="ruby-keyword">end</span></pre>
268
+ </div>
269
+
270
+ </div>
271
+
272
+
273
+
274
+
275
+ </div>
276
+
277
+
278
+ <div id="method-i-borderize" class="method-detail ">
279
+
280
+ <div class="method-heading">
281
+ <span class="method-name">borderize</span><span
282
+ class="method-args">(char='-')</span>
283
+
284
+ <span class="method-click-advice">click to toggle source</span>
285
+
286
+ </div>
287
+
288
+
289
+ <div class="method-description">
290
+
291
+ <p>return the string with a border at the top and bottom of the string border
292
+ character can be altered</p>
293
+
294
+
295
+
296
+
297
+ <div class="method-source-code" id="borderize-source">
298
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 58</span>
299
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">borderize</span>(<span class="ruby-identifier">char</span>=<span class="ruby-string">&#39;-&#39;</span>)
300
+
301
+ <span class="ruby-identifier">border</span> = <span class="ruby-identifier">char</span> <span class="ruby-operator">*</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span>
302
+ <span class="ruby-keyword">return</span> <span class="ruby-node">&quot;#{border}\n#{self}\n#{border}&quot;</span>
303
+
304
+ <span class="ruby-keyword">end</span></pre>
305
+ </div>
306
+
307
+ </div>
308
+
309
+
310
+
311
+
312
+ </div>
313
+
314
+
315
+ <div id="method-i-decode64" class="method-detail ">
316
+
317
+ <div class="method-heading">
318
+ <span class="method-name">decode64</span><span
319
+ class="method-args">(strict=false)</span>
320
+
321
+ <span class="method-click-advice">click to toggle source</span>
322
+
323
+ </div>
324
+
325
+
326
+ <div class="method-description">
327
+
328
+ <p>Base64 decde and return a duplicate string.</p>
329
+
330
+
331
+
332
+
333
+ <div class="method-source-code" id="decode64-source">
334
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 319</span>
335
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">decode64</span>(<span class="ruby-identifier">strict</span>=<span class="ruby-keyword">false</span>)
336
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">strict</span>
337
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Base64</span><span class="ruby-operator">::</span><span class="ruby-identifier">strict_decode64</span>(<span class="ruby-keyword">self</span>)
338
+ <span class="ruby-keyword">else</span>
339
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Base64</span><span class="ruby-operator">::</span><span class="ruby-identifier">decode64</span>(<span class="ruby-keyword">self</span>)
340
+ <span class="ruby-keyword">end</span>
341
+ <span class="ruby-keyword">end</span></pre>
342
+ </div>
343
+
344
+ </div>
345
+
346
+
347
+
348
+
349
+ </div>
350
+
351
+
352
+ <div id="method-i-obfuscate_case" class="method-detail ">
353
+
354
+ <div class="method-heading">
355
+ <span class="method-name">obfuscate_case</span><span
356
+ class="method-args">()</span>
357
+
358
+ <span class="method-click-advice">click to toggle source</span>
359
+
360
+ </div>
361
+
362
+
363
+ <div class="method-description">
364
+
365
+ <p>Return a duplicate of the string with the case altered randomly.</p>
366
+
367
+
368
+
369
+
370
+ <div class="method-source-code" id="obfuscate_case-source">
371
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 342</span>
372
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">obfuscate_case</span>()
373
+
374
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;&#39;</span>).<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
375
+
376
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">rand</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
377
+
378
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">upcase</span>
379
+
380
+ <span class="ruby-keyword">else</span>
381
+
382
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">downcase</span>
383
+
384
+ <span class="ruby-keyword">end</span>
385
+
386
+ <span class="ruby-keyword">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;&#39;</span>)
387
+
388
+ <span class="ruby-keyword">end</span></pre>
389
+ </div>
390
+
391
+ </div>
392
+
393
+
394
+
395
+
396
+ </div>
397
+
398
+
399
+ <div id="method-i-obfuscate_string_insert" class="method-detail ">
400
+
401
+ <div class="method-heading">
402
+ <span class="method-name">obfuscate_string_insert</span><span
403
+ class="method-args">(string)</span>
404
+
405
+ <span class="method-click-advice">click to toggle source</span>
406
+
407
+ </div>
408
+
409
+
410
+ <div class="method-description">
411
+
412
+ <p>Inser <em>string</em> at a random place in the current string.</p>
413
+
414
+
415
+
416
+
417
+ <div class="method-source-code" id="obfuscate_string_insert-source">
418
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 361</span>
419
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">obfuscate_string_insert</span>(<span class="ruby-identifier">string</span>)
420
+
421
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">rand</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)), <span class="ruby-identifier">string</span>)
422
+
423
+ <span class="ruby-keyword">end</span></pre>
424
+ </div>
425
+
426
+ </div>
427
+
428
+
429
+
430
+
431
+ </div>
432
+
433
+
434
+ <div id="method-i-prefix" class="method-detail ">
435
+
436
+ <div class="method-heading">
437
+ <span class="method-name">prefix</span><span
438
+ class="method-args">(symbol: '+', wrapper: ["[","]"], space_char: " ", rep: 1)</span>
439
+
440
+ <span class="method-click-advice">click to toggle source</span>
441
+
442
+ </div>
443
+
444
+
445
+ <div class="method-description">
446
+
447
+ <p>Prefix the string with a symbol wrapped in two characters.</p>
448
+
449
+
450
+
451
+
452
+ <div class="method-source-code" id="prefix-source">
453
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 142</span>
454
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">prefix</span>(<span class="ruby-identifier">symbol</span><span class="ruby-operator">:</span> <span class="ruby-string">&#39;+&#39;</span>, <span class="ruby-identifier">wrapper</span><span class="ruby-operator">:</span> [<span class="ruby-string">&quot;[&quot;</span>,<span class="ruby-string">&quot;]&quot;</span>], <span class="ruby-identifier">space_char</span><span class="ruby-operator">:</span> <span class="ruby-string">&quot; &quot;</span>, <span class="ruby-identifier">rep</span><span class="ruby-operator">:</span> <span class="ruby-value">1</span>)
455
+
456
+ <span class="ruby-keyword">return</span> (<span class="ruby-identifier">wrapper</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">symbol</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">wrapper</span>[<span class="ruby-value">1</span>]) <span class="ruby-operator">+</span> (<span class="ruby-identifier">space_char</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">rep</span>) <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>
457
+
458
+ <span class="ruby-keyword">end</span></pre>
459
+ </div>
460
+
461
+ </div>
462
+
463
+
464
+
465
+
466
+ </div>
467
+
468
+
469
+ <div id="method-i-prettyfi" class="method-detail ">
470
+
471
+ <div class="method-heading">
472
+ <span class="method-name">prettyfi</span><span
473
+ class="method-args">(max_len=60)</span>
474
+
475
+ <span class="method-click-advice">click to toggle source</span>
476
+
477
+ </div>
478
+
479
+
480
+ <div class="method-description">
481
+
482
+ <p>trim the string to a particular length and echo it to stdout as a script
483
+ ready string</p>
484
+
485
+
486
+
487
+
488
+ <div class="method-source-code" id="prettyfi-source">
489
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 67</span>
490
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">prettyfi</span>(<span class="ruby-identifier">max_len</span>=<span class="ruby-value">60</span>)
491
+
492
+ <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">max_len</span>
493
+
494
+ <span class="ruby-identifier">out</span> = <span class="ruby-keyword">self</span>
495
+
496
+ <span class="ruby-keyword">else</span>
497
+
498
+ <span class="ruby-comment"># holds output fragments</span>
499
+ <span class="ruby-identifier">buff</span> = []
500
+
501
+ <span class="ruby-identifier">start</span>, <span class="ruby-identifier">_end</span> = <span class="ruby-value">0</span>, (<span class="ruby-identifier">max_len</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
502
+
503
+ <span class="ruby-identifier">ind</span>,<span class="ruby-identifier">counter</span> = <span class="ruby-value">-1</span>, <span class="ruby-value">0</span>
504
+
505
+ <span class="ruby-identifier">chunk</span> = <span class="ruby-string">&quot;&quot;</span>
506
+ <span class="ruby-keyword">while</span> <span class="ruby-identifier">c</span> = <span class="ruby-keyword">self</span>[<span class="ruby-identifier">ind</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>]
507
+
508
+ <span class="ruby-identifier">counter</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
509
+ <span class="ruby-identifier">chunk</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>
510
+
511
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">counter</span> <span class="ruby-operator">==</span> (<span class="ruby-identifier">max_len</span>) <span class="ruby-keyword">or</span> <span class="ruby-identifier">ind</span> <span class="ruby-operator">==</span> (<span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
512
+
513
+ <span class="ruby-identifier">buff</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&#39;&quot;&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">chunk</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;&quot;&#39;</span>
514
+ <span class="ruby-identifier">chunk</span> = <span class="ruby-string">&quot;&quot;</span>
515
+ <span class="ruby-identifier">counter</span> = <span class="ruby-value">0</span>
516
+
517
+ <span class="ruby-keyword">end</span>
518
+
519
+ <span class="ruby-keyword">end</span>
520
+
521
+ <span class="ruby-identifier">out</span> = <span class="ruby-identifier">buff</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot; +\n&quot;</span>)
522
+
523
+ <span class="ruby-keyword">end</span>
524
+
525
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">out</span>
526
+
527
+ <span class="ruby-keyword">end</span></pre>
528
+ </div>
529
+
530
+ </div>
531
+
532
+
533
+
534
+
535
+ </div>
536
+
537
+
538
+ <div id="method-i-prettyfi_shellcode" class="method-detail ">
539
+
540
+ <div class="method-heading">
541
+ <span class="method-name">prettyfi_shellcode</span><span
542
+ class="method-args">(prefix: '\x', limit: 16)</span>
543
+
544
+ <span class="method-click-advice">click to toggle source</span>
545
+
546
+ </div>
547
+
548
+
549
+ <div class="method-description">
550
+
551
+ <p>same thing as prettyfi but converts contents of the string to x format</p>
552
+
553
+
554
+
555
+
556
+ <div class="method-source-code" id="prettyfi_shellcode-source">
557
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 108</span>
558
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">prettyfi_shellcode</span>(<span class="ruby-identifier">prefix</span><span class="ruby-operator">:</span> <span class="ruby-string">&#39;\x&#39;</span>, <span class="ruby-identifier">limit</span><span class="ruby-operator">:</span> <span class="ruby-value">16</span>)
559
+
560
+ <span class="ruby-identifier">ary</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bin_to_array</span>
561
+
562
+ <span class="ruby-identifier">output</span> = <span class="ruby-string">&quot;&quot;</span>
563
+
564
+ <span class="ruby-comment"># Maximum index position of split array</span>
565
+ <span class="ruby-identifier">max</span> = (<span class="ruby-identifier">ary</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
566
+
567
+ <span class="ruby-comment"># Bottom of slice range</span>
568
+ <span class="ruby-identifier">floor</span> = <span class="ruby-value">0</span>
569
+
570
+ <span class="ruby-comment"># Top of slice range</span>
571
+ <span class="ruby-identifier">ceiling</span> = (<span class="ruby-identifier">limit</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
572
+
573
+ <span class="ruby-keyword">while</span> <span class="ruby-keyword">true</span>
574
+
575
+ <span class="ruby-identifier">slice</span> = <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">floor</span><span class="ruby-operator">..</span><span class="ruby-identifier">ceiling</span>).<span class="ruby-identifier">join</span>(<span class="ruby-identifier">prefix</span>)
576
+
577
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&#39;&quot;&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">slice</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;&quot;&#39;</span>
578
+
579
+ <span class="ruby-keyword">break</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">ceiling</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">max</span>
580
+
581
+ <span class="ruby-identifier">floor</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">limit</span>
582
+ <span class="ruby-identifier">ceiling</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">limit</span>
583
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot;+\n&quot;</span>
584
+
585
+ <span class="ruby-keyword">end</span>
586
+
587
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">output</span>
588
+
589
+ <span class="ruby-keyword">end</span></pre>
590
+ </div>
591
+
592
+ </div>
593
+
594
+
595
+
596
+
597
+ </div>
598
+
599
+
600
+ <div id="method-i-rando_insert" class="method-detail ">
601
+
602
+ <div class="method-heading">
603
+ <span class="method-name">rando_insert</span><span
604
+ class="method-args">(str)</span>
605
+
606
+ <span class="method-click-advice">click to toggle source</span>
607
+
608
+ </div>
609
+
610
+
611
+ <div class="method-description">
612
+
613
+ <p>Insert a string at a random index within this string</p>
614
+
615
+
616
+
617
+
618
+ <div class="method-source-code" id="rando_insert-source">
619
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 44</span>
620
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">rando_insert</span>(<span class="ruby-identifier">str</span>)
621
+
622
+ <span class="ruby-keyword">unless</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
623
+
624
+ <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;String length is too short! length must be 2 or greater (len &gt;= 2)&quot;</span>
625
+
626
+ <span class="ruby-keyword">end</span>
627
+
628
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">rand</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)), <span class="ruby-identifier">str</span>)
629
+
630
+ <span class="ruby-keyword">end</span></pre>
631
+ </div>
632
+
633
+ </div>
634
+
635
+
636
+
637
+
638
+ </div>
639
+
640
+
641
+ <div id="method-i-simple_prefix" class="method-detail ">
642
+
643
+ <div class="method-heading">
644
+ <span class="method-name">simple_prefix</span><span
645
+ class="method-args">(char)</span>
646
+
647
+ <span class="method-click-advice">click to toggle source</span>
648
+
649
+ </div>
650
+
651
+
652
+ <div class="method-description">
653
+
654
+ <p>Returna a duplicate of the string with a character prefix.</p>
655
+
656
+
657
+
658
+
659
+ <div class="method-source-code" id="simple_prefix-source">
660
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 149</span>
661
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">simple_prefix</span>(<span class="ruby-identifier">char</span>)
662
+
663
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">char</span><span class="ruby-operator">+</span><span class="ruby-keyword">self</span>
664
+
665
+ <span class="ruby-keyword">end</span></pre>
666
+ </div>
667
+
668
+ </div>
669
+
670
+
671
+
672
+
673
+ </div>
674
+
675
+
676
+ <div id="method-i-snake_name" class="method-detail ">
677
+
678
+ <div class="method-heading">
679
+ <span class="method-name">snake_name</span><span
680
+ class="method-args">()</span>
681
+
682
+ <span class="method-click-advice">click to toggle source</span>
683
+
684
+ </div>
685
+
686
+
687
+ <div class="method-description">
688
+
689
+ <p>Convenience method for <a
690
+ href="String.html#method-i-to_underscore">#to_underscore</a>()</p>
691
+
692
+
693
+
694
+
695
+ <div class="method-source-code" id="snake_name-source">
696
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 191</span>
697
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">snake_name</span>()
698
+
699
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">to_underscore</span>
700
+
701
+ <span class="ruby-keyword">end</span></pre>
702
+ </div>
703
+
704
+ </div>
705
+
706
+
707
+
708
+
709
+ </div>
710
+
711
+
712
+ <div id="method-i-suffix" class="method-detail ">
713
+
714
+ <div class="method-heading">
715
+ <span class="method-name">suffix</span><span
716
+ class="method-args">(char)</span>
717
+
718
+ <span class="method-click-advice">click to toggle source</span>
719
+
720
+ </div>
721
+
722
+
723
+ <div class="method-description">
724
+
725
+ <p>Return a duplicate of the string suffixed with a single character.</p>
726
+
727
+
728
+
729
+
730
+ <div class="method-source-code" id="suffix-source">
731
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 163</span>
732
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">suffix</span>(<span class="ruby-identifier">char</span>)
733
+
734
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span><span class="ruby-operator">+</span><span class="ruby-identifier">char</span>
735
+
736
+ <span class="ruby-keyword">end</span></pre>
737
+ </div>
738
+
739
+ </div>
740
+
741
+
742
+
743
+
744
+ </div>
745
+
746
+
747
+ <div id="method-i-to_base64" class="method-detail ">
748
+
749
+ <div class="method-heading">
750
+ <span class="method-name">to_base64</span><span
751
+ class="method-args">(strict=false)</span>
752
+
753
+ <span class="method-click-advice">click to toggle source</span>
754
+
755
+ </div>
756
+
757
+
758
+ <div class="method-description">
759
+
760
+ <p>Base64 encode and return a duplicate string.</p>
761
+
762
+
763
+
764
+
765
+ <div class="method-source-code" id="to_base64-source">
766
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 310</span>
767
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_base64</span>(<span class="ruby-identifier">strict</span>=<span class="ruby-keyword">false</span>)
768
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">strict</span>
769
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Base64</span><span class="ruby-operator">::</span><span class="ruby-identifier">strict_encode64</span>(<span class="ruby-keyword">self</span>)
770
+ <span class="ruby-keyword">else</span>
771
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Base64</span><span class="ruby-operator">::</span><span class="ruby-identifier">encode64</span>(<span class="ruby-keyword">self</span>)
772
+ <span class="ruby-keyword">end</span>
773
+ <span class="ruby-keyword">end</span></pre>
774
+ </div>
775
+
776
+ </div>
777
+
778
+
779
+
780
+
781
+ </div>
782
+
783
+
784
+ <div id="method-i-to_binary" class="method-detail ">
785
+
786
+ <div class="method-heading">
787
+ <span class="method-name">to_binary</span><span
788
+ class="method-args">(prefix='0b')</span>
789
+
790
+ <span class="method-click-advice">click to toggle source</span>
791
+
792
+ </div>
793
+
794
+
795
+ <div class="method-description">
796
+
797
+ <p>Encode and return a duplicate of the string in <em>0b0010110</em> format.</p>
798
+
799
+
800
+
801
+
802
+ <div class="method-source-code" id="to_binary-source">
803
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 328</span>
804
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_binary</span>(<span class="ruby-identifier">prefix</span>=<span class="ruby-string">&#39;0b&#39;</span>)
805
+
806
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">prefix</span><span class="ruby-operator">+</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">bytes</span>
807
+ .<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
808
+
809
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value">2</span>)
810
+ <span class="ruby-identifier">b</span> = <span class="ruby-string">&#39;0&#39;</span> <span class="ruby-operator">*</span> (<span class="ruby-value">8</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">length</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">b</span>
811
+
812
+ <span class="ruby-keyword">end</span>
813
+ .<span class="ruby-identifier">join</span>(<span class="ruby-identifier">prefix</span>)
814
+
815
+ <span class="ruby-keyword">end</span></pre>
816
+ </div>
817
+
818
+ </div>
819
+
820
+
821
+
822
+
823
+ </div>
824
+
825
+
826
+ <div id="method-i-to_csv_value" class="method-detail ">
827
+
828
+ <div class="method-heading">
829
+ <span class="method-name">to_csv_value</span><span
830
+ class="method-args">(comma_delimit=true)</span>
831
+
832
+ <span class="method-click-advice">click to toggle source</span>
833
+
834
+ </div>
835
+
836
+
837
+ <div class="method-description">
838
+
839
+ <p>Convert the string to a CSV value. Setting comma delimit to false will
840
+ return the string wrapped in double quotes.</p>
841
+
842
+
843
+
844
+
845
+ <div class="method-source-code" id="to_csv_value-source">
846
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 171</span>
847
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_csv_value</span>(<span class="ruby-identifier">comma_delimit</span>=<span class="ruby-keyword">true</span>)
848
+
849
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">comma_delimit</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">wrap</span>(<span class="ruby-string">&#39;&quot;&#39;</span>).<span class="ruby-identifier">suffix</span>(<span class="ruby-string">&#39;,&#39;</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">wrap</span>(<span class="ruby-string">&#39;&quot;&#39;</span>)
850
+
851
+ <span class="ruby-keyword">end</span></pre>
852
+ </div>
853
+
854
+ </div>
855
+
856
+
857
+
858
+
859
+ </div>
860
+
861
+
862
+ <div id="method-i-to_hex_string" class="method-detail ">
863
+
864
+ <div class="method-heading">
865
+ <span class="method-name">to_hex_string</span><span
866
+ class="method-args">(literal: true, prefix: '\x')</span>
867
+
868
+ <span class="method-click-advice">click to toggle source</span>
869
+
870
+ </div>
871
+
872
+
873
+ <div class="method-description">
874
+
875
+ <p>Returns a duplicate of the string unpacked in x literal form. Useful when
876
+ dynamically generating shellcode.</p>
877
+
878
+
879
+
880
+
881
+ <div class="method-source-code" id="to_hex_string-source">
882
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 250</span>
883
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_hex_string</span>(<span class="ruby-identifier">literal</span><span class="ruby-operator">:</span> <span class="ruby-keyword">true</span>, <span class="ruby-identifier">prefix</span><span class="ruby-operator">:</span> <span class="ruby-string">&#39;\x&#39;</span>)
884
+
885
+ <span class="ruby-identifier">out</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bin_to_array</span>()
886
+
887
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">literal</span>
888
+ <span class="ruby-identifier">out</span> = <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">out</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">prefix</span>)
889
+ <span class="ruby-keyword">else</span>
890
+ <span class="ruby-identifier">out</span> = <span class="ruby-identifier">out</span>.<span class="ruby-identifier">map!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">e</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&quot;H2&quot;</span>) }.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;&#39;</span>)
891
+ <span class="ruby-keyword">end</span>
892
+
893
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">out</span>
894
+
895
+ <span class="ruby-keyword">end</span></pre>
896
+ </div>
897
+
898
+ </div>
899
+
900
+
901
+
902
+
903
+ </div>
904
+
905
+
906
+ <div id="method-i-to_instance_variable_name" class="method-detail ">
907
+
908
+ <div class="method-heading">
909
+ <span class="method-name">to_instance_variable_name</span><span
910
+ class="method-args">(snake_case=true, symbolize=true)</span>
911
+
912
+ <span class="method-click-advice">click to toggle source</span>
913
+
914
+ </div>
915
+
916
+
917
+ <div class="method-description">
918
+
919
+ <p>Return a duplicate of the string prefixed with @ converted to a symbol.</p>
920
+
921
+
922
+
923
+
924
+ <div class="method-source-code" id="to_instance_variable_name-source">
925
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 198</span>
926
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_instance_variable_name</span>(<span class="ruby-identifier">snake_case</span>=<span class="ruby-keyword">true</span>, <span class="ruby-identifier">symbolize</span>=<span class="ruby-keyword">true</span>)
927
+
928
+ <span class="ruby-identifier">name</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">to_s</span>
929
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_underscore</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">snake_case</span>
930
+ <span class="ruby-identifier">name</span> = (<span class="ruby-string">&#39;@&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">name</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp">/^@/</span>
931
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">symbolize</span>
932
+
933
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">name</span>
934
+
935
+ <span class="ruby-keyword">end</span></pre>
936
+ </div>
937
+
938
+ </div>
939
+
940
+
941
+
942
+
943
+ </div>
944
+
945
+
946
+ <div id="method-i-to_ivar_name" class="method-detail ">
947
+
948
+ <div class="method-heading">
949
+ <span class="method-name">to_ivar_name</span><span
950
+ class="method-args">(snake_case=true, symbolize=true)</span>
951
+
952
+ <span class="method-click-advice">click to toggle source</span>
953
+
954
+ </div>
955
+
956
+
957
+ <div class="method-description">
958
+
959
+ <p>Convenience method for <a
960
+ href="String.html#method-i-to_instance_variable_name">#to_instance_variable_name</a>()</p>
961
+
962
+
963
+
964
+
965
+ <div class="method-source-code" id="to_ivar_name-source">
966
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 210</span>
967
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_ivar_name</span>(<span class="ruby-identifier">snake_case</span>=<span class="ruby-keyword">true</span>, <span class="ruby-identifier">symbolize</span>=<span class="ruby-keyword">true</span>)
968
+
969
+ <span class="ruby-identifier">to_instance_variable_name</span>(<span class="ruby-identifier">snake_case</span>, <span class="ruby-identifier">symbolize</span>)
970
+
971
+ <span class="ruby-keyword">end</span></pre>
972
+ </div>
973
+
974
+ </div>
975
+
976
+
977
+
978
+
979
+ </div>
980
+
981
+
982
+ <div id="method-i-to_underscore" class="method-detail ">
983
+
984
+ <div class="method-heading">
985
+ <span class="method-name">to_underscore</span><span
986
+ class="method-args">()</span>
987
+
988
+ <span class="method-click-advice">click to toggle source</span>
989
+
990
+ </div>
991
+
992
+
993
+ <div class="method-description">
994
+
995
+ <dl class="rdoc-list note-list"><dt>Return the string will all
996
+ <dd>
997
+ <p>and capital letters converted to</p>
998
+ </dd></dl>
999
+
1000
+ <p>underscores.</p>
1001
+
1002
+
1003
+
1004
+
1005
+ <div class="method-source-code" id="to_underscore-source">
1006
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 179</span>
1007
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_underscore</span>()
1008
+
1009
+ <span class="ruby-comment"># sauce: https://stackoverflow.com/questions/1509915/converting-camel-case-to-underscore-case-in-ruby</span>
1010
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/::/</span>, <span class="ruby-string">&#39;/&#39;</span>)
1011
+ .<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/([A-Z]+)([A-Z][a-z])/</span>,<span class="ruby-string">&#39;\1_\2&#39;</span>)
1012
+ .<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/([a-z\d])([A-Z])/</span>,<span class="ruby-string">&#39;\1_\2&#39;</span>)
1013
+ .<span class="ruby-identifier">tr</span>(<span class="ruby-string">&quot;-&quot;</span>, <span class="ruby-string">&quot;_&quot;</span>)
1014
+ .<span class="ruby-identifier">downcase</span>
1015
+
1016
+ <span class="ruby-keyword">end</span></pre>
1017
+ </div>
1018
+
1019
+ </div>
1020
+
1021
+
1022
+
1023
+
1024
+ </div>
1025
+
1026
+
1027
+ <div id="method-i-to_url_encoded" class="method-detail ">
1028
+
1029
+ <div class="method-heading">
1030
+ <span class="method-name">to_url_encoded</span><span
1031
+ class="method-args">()</span>
1032
+
1033
+ <span class="method-click-advice">click to toggle source</span>
1034
+
1035
+ </div>
1036
+
1037
+
1038
+ <div class="method-description">
1039
+
1040
+ <p>Poor mans URL encoding: each character is unpacked to it&#39;s hex form and
1041
+ then suffixed with %.</p>
1042
+
1043
+
1044
+
1045
+
1046
+ <div class="method-source-code" id="to_url_encoded-source">
1047
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 305</span>
1048
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_url_encoded</span>()
1049
+ <span class="ruby-keyword">return</span> <span class="ruby-string">&#39;%&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bin_to_array</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;%&#39;</span>)
1050
+ <span class="ruby-keyword">end</span></pre>
1051
+ </div>
1052
+
1053
+ </div>
1054
+
1055
+
1056
+
1057
+
1058
+ </div>
1059
+
1060
+
1061
+ <div id="method-i-to_utf16" class="method-detail ">
1062
+
1063
+ <div class="method-heading">
1064
+ <span class="method-name">to_utf16</span><span
1065
+ class="method-args">(endianness='le')</span>
1066
+
1067
+ <span class="method-click-advice">click to toggle source</span>
1068
+
1069
+ </div>
1070
+
1071
+
1072
+ <div class="method-description">
1073
+
1074
+ <p>Return a duplicate string in literal from where each char is converted to
1075
+ utf16 literal format. Endianness can be altered via the <em>endianness</em>
1076
+ argument.</p>
1077
+
1078
+
1079
+
1080
+
1081
+ <div class="method-source-code" id="to_utf16-source">
1082
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 275</span>
1083
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_utf16</span>(<span class="ruby-identifier">endianness</span>=<span class="ruby-string">&#39;le&#39;</span>)
1084
+
1085
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">endianness</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp">/^(le|be)$/i</span>
1086
+
1087
+ <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;Error: valid arguments to endianness parameter: le or be&quot;</span>
1088
+
1089
+ <span class="ruby-keyword">end</span>
1090
+
1091
+ <span class="ruby-identifier">pad</span> = <span class="ruby-string">&#39;00&#39;</span>
1092
+ <span class="ruby-identifier">prefix</span> = <span class="ruby-string">&#39;\u&#39;</span>
1093
+
1094
+ <span class="ruby-comment"># get a copy of the string in hex form</span>
1095
+ <span class="ruby-comment"># and pad each byte</span>
1096
+ <span class="ruby-identifier">buff</span> = <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bin_to_array</span>
1097
+ .<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
1098
+
1099
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">endianness</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^le$/i</span>
1100
+ (<span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">pad</span>)
1101
+ <span class="ruby-keyword">else</span>
1102
+ (<span class="ruby-identifier">b</span> = <span class="ruby-identifier">pad</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">b</span>)
1103
+ <span class="ruby-keyword">end</span>
1104
+
1105
+ <span class="ruby-keyword">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">prefix</span>)
1106
+
1107
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">buff</span>
1108
+
1109
+ <span class="ruby-keyword">end</span></pre>
1110
+ </div>
1111
+
1112
+ </div>
1113
+
1114
+
1115
+
1116
+
1117
+ </div>
1118
+
1119
+
1120
+ <div id="method-i-to_utf8" class="method-detail ">
1121
+
1122
+ <div class="method-heading">
1123
+ <span class="method-name">to_utf8</span><span
1124
+ class="method-args">(prefix='\u')</span>
1125
+
1126
+ <span class="method-click-advice">click to toggle source</span>
1127
+
1128
+ </div>
1129
+
1130
+
1131
+ <div class="method-description">
1132
+
1133
+ <p>Return a duplicate string in literal form with each character suffixed with
1134
+ u</p>
1135
+
1136
+
1137
+
1138
+
1139
+ <div class="method-source-code" id="to_utf8-source">
1140
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 266</span>
1141
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_utf8</span>(<span class="ruby-identifier">prefix</span>=<span class="ruby-string">&#39;\u&#39;</span>)
1142
+
1143
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">bin_to_array</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">prefix</span>)
1144
+
1145
+ <span class="ruby-keyword">end</span></pre>
1146
+ </div>
1147
+
1148
+ </div>
1149
+
1150
+
1151
+
1152
+
1153
+ </div>
1154
+
1155
+
1156
+ <div id="method-i-utf_pad" class="method-detail ">
1157
+
1158
+ <div class="method-heading">
1159
+ <span class="method-name">utf_pad</span><span
1160
+ class="method-args">()</span>
1161
+
1162
+ <span class="method-click-advice">click to toggle source</span>
1163
+
1164
+ </div>
1165
+
1166
+
1167
+ <div class="method-description">
1168
+
1169
+ <p>Pads each binary component in the string with x00. A duplicate of the
1170
+ string is modified and returned.</p>
1171
+
1172
+
1173
+
1174
+
1175
+ <div class="method-source-code" id="utf_pad-source">
1176
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 218</span>
1177
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">utf_pad</span>()
1178
+
1179
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;H2&#39;</span><span class="ruby-operator">*</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">bytesize</span>)
1180
+ .<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span> = <span class="ruby-string">&quot;\x00&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">l</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;H2&#39;</span>)}
1181
+ .<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;&#39;</span>)
1182
+
1183
+ <span class="ruby-keyword">end</span></pre>
1184
+ </div>
1185
+
1186
+ </div>
1187
+
1188
+
1189
+
1190
+
1191
+ </div>
1192
+
1193
+
1194
+ <div id="method-i-wrap" class="method-detail ">
1195
+
1196
+ <div class="method-heading">
1197
+ <span class="method-name">wrap</span><span
1198
+ class="method-args">(char)</span>
1199
+
1200
+ <span class="method-click-advice">click to toggle source</span>
1201
+
1202
+ </div>
1203
+
1204
+
1205
+ <div class="method-description">
1206
+
1207
+ <p>Return a duplicate of the string with a character on each side.</p>
1208
+
1209
+
1210
+
1211
+
1212
+ <div class="method-source-code" id="wrap-source">
1213
+ <pre><span class="ruby-comment"># File lib/aastdlib/string.rb, line 156</span>
1214
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">wrap</span>(<span class="ruby-identifier">char</span>)
1215
+
1216
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">char</span><span class="ruby-operator">+</span><span class="ruby-keyword">self</span><span class="ruby-operator">+</span><span class="ruby-identifier">char</span>
1217
+
1218
+ <span class="ruby-keyword">end</span></pre>
1219
+ </div>
1220
+
1221
+ </div>
1222
+
1223
+
1224
+
1225
+
1226
+ </div>
1227
+
1228
+
1229
+ </section>
1230
+
1231
+ </section>
1232
+ </main>
1233
+
1234
+
1235
+ <footer id="validator-badges" role="contentinfo">
1236
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
1237
+ <p>Generated by <a href="https://rdoc.github.io/rdoc">RDoc</a> 5.1.0.
1238
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
1239
+ </footer>
1240
+