aastdlib 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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
+