mack_ruby_core_extensions 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +3 -0
- data/doc/classes/Array.html +465 -0
- data/doc/classes/Class.html +181 -0
- data/doc/classes/Dir.html +190 -0
- data/doc/classes/Float.html +148 -0
- data/doc/classes/Hash.html +232 -0
- data/doc/classes/Kernel.html +182 -0
- data/doc/classes/Mack.html +111 -0
- data/doc/classes/Mack/Utils.html +111 -0
- data/doc/classes/Mack/Utils/Inflector.html +422 -0
- data/doc/classes/Math.html +188 -0
- data/doc/classes/MethodNotImplemented.html +155 -0
- data/doc/classes/Module.html +203 -0
- data/doc/classes/NilClass.html +151 -0
- data/doc/classes/Object.html +315 -0
- data/doc/classes/String.html +890 -0
- data/doc/classes/Symbol.html +148 -0
- data/doc/created.rid +1 -0
- data/doc/files/README.html +111 -0
- data/doc/files/lib/extensions/array_rb.html +101 -0
- data/doc/files/lib/extensions/class_rb.html +101 -0
- data/doc/files/lib/extensions/dir_rb.html +101 -0
- data/doc/files/lib/extensions/float_rb.html +101 -0
- data/doc/files/lib/extensions/hash_rb.html +101 -0
- data/doc/files/lib/extensions/kernel_rb.html +109 -0
- data/doc/files/lib/extensions/logger_rb.html +101 -0
- data/doc/files/lib/extensions/math_rb.html +101 -0
- data/doc/files/lib/extensions/method_not_implemented_rb.html +108 -0
- data/doc/files/lib/extensions/module_rb.html +101 -0
- data/doc/files/lib/extensions/nil_rb.html +101 -0
- data/doc/files/lib/extensions/object_rb.html +101 -0
- data/doc/files/lib/extensions/string_rb.html +108 -0
- data/doc/files/lib/extensions/symbol_rb.html +101 -0
- data/doc/files/lib/mack_ruby_core_extensions_rb.html +101 -0
- data/doc/files/lib/utils/inflections_rb.html +101 -0
- data/doc/files/lib/utils/inflector_rb.html +108 -0
- data/doc/fr_class_index.html +42 -0
- data/doc/fr_file_index.html +44 -0
- data/doc/fr_method_index.html +92 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/extensions/array.rb +101 -0
- data/lib/extensions/class.rb +19 -0
- data/lib/extensions/dir.rb +25 -0
- data/lib/extensions/float.rb +5 -0
- data/lib/extensions/hash.rb +47 -0
- data/lib/extensions/kernel.rb +30 -0
- data/lib/extensions/logger.rb +0 -0
- data/lib/extensions/math.rb +15 -0
- data/lib/extensions/method_not_implemented.rb +12 -0
- data/lib/extensions/module.rb +29 -0
- data/lib/extensions/nil.rb +8 -0
- data/lib/extensions/object.rb +103 -0
- data/lib/extensions/string.rb +261 -0
- data/lib/extensions/symbol.rb +7 -0
- data/lib/mack_ruby_core_extensions.rb +7 -0
- data/lib/utils/inflections.rb +62 -0
- data/lib/utils/inflector.rb +129 -0
- data/test/extensions/array_test.rb +15 -0
- data/test/extensions/class_test.rb +28 -0
- data/test/extensions/dir_test.rb +15 -0
- data/test/extensions/float_test.rb +15 -0
- data/test/extensions/hash_test.rb +34 -0
- data/test/extensions/kernel_test.rb +15 -0
- data/test/extensions/logger_test.rb +15 -0
- data/test/extensions/math_test.rb +15 -0
- data/test/extensions/method_not_implemented_test.rb +15 -0
- data/test/extensions/module_test.rb +57 -0
- data/test/extensions/nil_test.rb +15 -0
- data/test/extensions/object_test.rb +15 -0
- data/test/extensions/string_test.rb +104 -0
- data/test/extensions/symbol_test.rb +15 -0
- data/test/test_helper.rb +6 -0
- data/test/utils/inflection_test.rb +32 -0
- metadata +133 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Classes
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Classes</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Classes</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/Array.html">Array</a><br />
|
24
|
+
<a href="classes/Class.html">Class</a><br />
|
25
|
+
<a href="classes/Dir.html">Dir</a><br />
|
26
|
+
<a href="classes/Float.html">Float</a><br />
|
27
|
+
<a href="classes/Hash.html">Hash</a><br />
|
28
|
+
<a href="classes/Kernel.html">Kernel</a><br />
|
29
|
+
<a href="classes/Mack.html">Mack</a><br />
|
30
|
+
<a href="classes/Mack/Utils.html">Mack::Utils</a><br />
|
31
|
+
<a href="classes/Mack/Utils/Inflector.html">Mack::Utils::Inflector</a><br />
|
32
|
+
<a href="classes/Math.html">Math</a><br />
|
33
|
+
<a href="classes/MethodNotImplemented.html">MethodNotImplemented</a><br />
|
34
|
+
<a href="classes/Module.html">Module</a><br />
|
35
|
+
<a href="classes/NilClass.html">NilClass</a><br />
|
36
|
+
<a href="classes/Object.html">Object</a><br />
|
37
|
+
<a href="classes/String.html">String</a><br />
|
38
|
+
<a href="classes/Symbol.html">Symbol</a><br />
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
</body>
|
42
|
+
</html>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Files
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Files</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Files</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="files/README.html">README</a><br />
|
24
|
+
<a href="files/lib/extensions/array_rb.html">lib/extensions/array.rb</a><br />
|
25
|
+
<a href="files/lib/extensions/class_rb.html">lib/extensions/class.rb</a><br />
|
26
|
+
<a href="files/lib/extensions/dir_rb.html">lib/extensions/dir.rb</a><br />
|
27
|
+
<a href="files/lib/extensions/float_rb.html">lib/extensions/float.rb</a><br />
|
28
|
+
<a href="files/lib/extensions/hash_rb.html">lib/extensions/hash.rb</a><br />
|
29
|
+
<a href="files/lib/extensions/kernel_rb.html">lib/extensions/kernel.rb</a><br />
|
30
|
+
<a href="files/lib/extensions/logger_rb.html">lib/extensions/logger.rb</a><br />
|
31
|
+
<a href="files/lib/extensions/math_rb.html">lib/extensions/math.rb</a><br />
|
32
|
+
<a href="files/lib/extensions/method_not_implemented_rb.html">lib/extensions/method_not_implemented.rb</a><br />
|
33
|
+
<a href="files/lib/extensions/module_rb.html">lib/extensions/module.rb</a><br />
|
34
|
+
<a href="files/lib/extensions/nil_rb.html">lib/extensions/nil.rb</a><br />
|
35
|
+
<a href="files/lib/extensions/object_rb.html">lib/extensions/object.rb</a><br />
|
36
|
+
<a href="files/lib/extensions/string_rb.html">lib/extensions/string.rb</a><br />
|
37
|
+
<a href="files/lib/extensions/symbol_rb.html">lib/extensions/symbol.rb</a><br />
|
38
|
+
<a href="files/lib/mack_ruby_core_extensions_rb.html">lib/mack_ruby_core_extensions.rb</a><br />
|
39
|
+
<a href="files/lib/utils/inflections_rb.html">lib/utils/inflections.rb</a><br />
|
40
|
+
<a href="files/lib/utils/inflector_rb.html">lib/utils/inflector.rb</a><br />
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
</body>
|
44
|
+
</html>
|
@@ -0,0 +1,92 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Methods
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Methods</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Methods</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/Hash.html#M000005">- (Hash)</a><br />
|
24
|
+
<a href="classes/String.html#M000033">blank? (String)</a><br />
|
25
|
+
<a href="classes/NilClass.html#M000024">blank? (NilClass)</a><br />
|
26
|
+
<a href="classes/String.html#M000044">breakify (String)</a><br />
|
27
|
+
<a href="classes/String.html#M000045">breakify! (String)</a><br />
|
28
|
+
<a href="classes/String.html#M000031">camelcase (String)</a><br />
|
29
|
+
<a href="classes/String.html#M000051">capitalize_all_words (String)</a><br />
|
30
|
+
<a href="classes/String.html#M000052">capitalize_all_words! (String)</a><br />
|
31
|
+
<a href="classes/Class.html#M000023">class_is_a? (Class)</a><br />
|
32
|
+
<a href="classes/String.html#M000032">constantize (String)</a><br />
|
33
|
+
<a href="classes/Module.html#M000018">convert_security_of_methods (Module)</a><br />
|
34
|
+
<a href="classes/Array.html#M000016">count (Array)</a><br />
|
35
|
+
<a href="classes/Array.html#M000008">delete_from_array (Array)</a><br />
|
36
|
+
<a href="classes/Array.html#M000009">delete_from_array! (Array)</a><br />
|
37
|
+
<a href="classes/String.html#M000040">ends_with? (String)</a><br />
|
38
|
+
<a href="classes/String.html#M000046">hexdigest (String)</a><br />
|
39
|
+
<a href="classes/String.html#M000047">hexdigest! (String)</a><br />
|
40
|
+
<a href="classes/Module.html#M000019">include_safely_into (Module)</a><br />
|
41
|
+
<a href="classes/Mack/Utils/Inflector.html#M000061">inflections (Mack::Utils::Inflector)</a><br />
|
42
|
+
<a href="classes/Array.html#M000017">invert (Array)</a><br />
|
43
|
+
<a href="classes/Mack/Utils/Inflector.html#M000057">irregular (Mack::Utils::Inflector)</a><br />
|
44
|
+
<a href="classes/Object.html#M000028">ivar_cache (Object)</a><br />
|
45
|
+
<a href="classes/Object.html#M000029">ivar_cache_clear (Object)</a><br />
|
46
|
+
<a href="classes/Hash.html#M000004">join (Hash)</a><br />
|
47
|
+
<a href="classes/String.html#M000036">linkify (String)</a><br />
|
48
|
+
<a href="classes/Math.html#M000064">log2 (Math)</a><br />
|
49
|
+
<a href="classes/Dir.html#M000002">make_dirs (Dir)</a><br />
|
50
|
+
<a href="classes/Math.html#M000066">max (Math)</a><br />
|
51
|
+
<a href="classes/String.html#M000037">methodize (String)</a><br />
|
52
|
+
<a href="classes/Symbol.html#M000001">methodize (Symbol)</a><br />
|
53
|
+
<a href="classes/Math.html#M000065">min (Math)</a><br />
|
54
|
+
<a href="classes/Object.html#M000030">namespaces (Object)</a><br />
|
55
|
+
<a href="classes/MethodNotImplemented.html#M000020">new (MethodNotImplemented)</a><br />
|
56
|
+
<a href="classes/Class.html#M000022">new_instance_of (Class)</a><br />
|
57
|
+
<a href="classes/Array.html#M000007">parse_splat_args (Array)</a><br />
|
58
|
+
<a href="classes/Array.html#M000012">pick_random (Array)</a><br />
|
59
|
+
<a href="classes/Mack/Utils/Inflector.html#M000055">plural (Mack::Utils::Inflector)</a><br />
|
60
|
+
<a href="classes/String.html#M000034">plural (String)</a><br />
|
61
|
+
<a href="classes/Mack/Utils/Inflector.html#M000060">pluralize (Mack::Utils::Inflector)</a><br />
|
62
|
+
<a href="classes/String.html#M000041">pluralize_word (String)</a><br />
|
63
|
+
<a href="classes/Kernel.html#M000062">pp_to_s (Kernel)</a><br />
|
64
|
+
<a href="classes/Float.html#M000021">prec (Float)</a><br />
|
65
|
+
<a href="classes/Dir.html#M000003">prep_dir (Dir)</a><br />
|
66
|
+
<a href="classes/Array.html#M000013">random_each (Array)</a><br />
|
67
|
+
<a href="classes/Array.html#M000010">randomize (Array)</a><br />
|
68
|
+
<a href="classes/String.html#M000048">randomize (String)</a><br />
|
69
|
+
<a href="classes/Array.html#M000011">randomize! (Array)</a><br />
|
70
|
+
<a href="classes/String.html#M000042">remove (String)</a><br />
|
71
|
+
<a href="classes/String.html#M000043">remove! (String)</a><br />
|
72
|
+
<a href="classes/Kernel.html#M000063">retryable (Kernel)</a><br />
|
73
|
+
<a href="classes/Object.html#M000026">running_time (Object)</a><br />
|
74
|
+
<a href="classes/Object.html#M000027">send_with_chain (Object)</a><br />
|
75
|
+
<a href="classes/String.html#M000035">singular (String)</a><br />
|
76
|
+
<a href="classes/Mack/Utils/Inflector.html#M000056">singular (Mack::Utils::Inflector)</a><br />
|
77
|
+
<a href="classes/Mack/Utils/Inflector.html#M000059">singularize (Mack::Utils::Inflector)</a><br />
|
78
|
+
<a href="classes/String.html#M000053">sql_safe_str (String)</a><br />
|
79
|
+
<a href="classes/String.html#M000054">sql_safe_str! (String)</a><br />
|
80
|
+
<a href="classes/String.html#M000039">starts_with? (String)</a><br />
|
81
|
+
<a href="classes/Array.html#M000014">subset? (Array)</a><br />
|
82
|
+
<a href="classes/Array.html#M000015">superset? (Array)</a><br />
|
83
|
+
<a href="classes/Object.html#M000025">to_param (Object)</a><br />
|
84
|
+
<a href="classes/Hash.html#M000006">to_params (Hash)</a><br />
|
85
|
+
<a href="classes/String.html#M000049">truncate (String)</a><br />
|
86
|
+
<a href="classes/String.html#M000050">truncate! (String)</a><br />
|
87
|
+
<a href="classes/Mack/Utils/Inflector.html#M000058">uncountable (Mack::Utils::Inflector)</a><br />
|
88
|
+
<a href="classes/String.html#M000038">underscore (String)</a><br />
|
89
|
+
</div>
|
90
|
+
</div>
|
91
|
+
</body>
|
92
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
|
8
|
+
Mack Ruby Core Extensions
|
9
|
+
|
10
|
+
-->
|
11
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
12
|
+
<head>
|
13
|
+
<title>Mack Ruby Core Extensions</title>
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
15
|
+
</head>
|
16
|
+
<frameset rows="20%, 80%">
|
17
|
+
<frameset cols="25%,35%,45%">
|
18
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
19
|
+
<frame src="fr_class_index.html" name="Classes" />
|
20
|
+
<frame src="fr_method_index.html" name="Methods" />
|
21
|
+
</frameset>
|
22
|
+
<frame src="files/README.html" name="docwin" />
|
23
|
+
</frameset>
|
24
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
|
2
|
+
body {
|
3
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
4
|
+
font-size: 90%;
|
5
|
+
margin: 0;
|
6
|
+
margin-left: 40px;
|
7
|
+
padding: 0;
|
8
|
+
background: white;
|
9
|
+
}
|
10
|
+
|
11
|
+
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
12
|
+
h1 { font-size: 150%; }
|
13
|
+
h2,h3,h4 { margin-top: 1em; }
|
14
|
+
|
15
|
+
a { background: #eef; color: #039; text-decoration: none; }
|
16
|
+
a:hover { background: #039; color: #eef; }
|
17
|
+
|
18
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
19
|
+
td > a {
|
20
|
+
background: transparent;
|
21
|
+
color: #039;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* and inside a section title */
|
26
|
+
.section-title > a {
|
27
|
+
background: transparent;
|
28
|
+
color: #eee;
|
29
|
+
text-decoration: none;
|
30
|
+
}
|
31
|
+
|
32
|
+
/* === Structural elements =================================== */
|
33
|
+
|
34
|
+
div#index {
|
35
|
+
margin: 0;
|
36
|
+
margin-left: -40px;
|
37
|
+
padding: 0;
|
38
|
+
font-size: 90%;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
div#index a {
|
43
|
+
margin-left: 0.7em;
|
44
|
+
}
|
45
|
+
|
46
|
+
div#index .section-bar {
|
47
|
+
margin-left: 0px;
|
48
|
+
padding-left: 0.7em;
|
49
|
+
background: #ccc;
|
50
|
+
font-size: small;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
div#classHeader, div#fileHeader {
|
55
|
+
width: auto;
|
56
|
+
color: white;
|
57
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
58
|
+
margin: 0;
|
59
|
+
margin-left: -40px;
|
60
|
+
border-bottom: 3px solid #006;
|
61
|
+
}
|
62
|
+
|
63
|
+
div#classHeader a, div#fileHeader a {
|
64
|
+
background: inherit;
|
65
|
+
color: white;
|
66
|
+
}
|
67
|
+
|
68
|
+
div#classHeader td, div#fileHeader td {
|
69
|
+
background: inherit;
|
70
|
+
color: white;
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
div#fileHeader {
|
75
|
+
background: #057;
|
76
|
+
}
|
77
|
+
|
78
|
+
div#classHeader {
|
79
|
+
background: #048;
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
.class-name-in-header {
|
84
|
+
font-size: 180%;
|
85
|
+
font-weight: bold;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
div#bodyContent {
|
90
|
+
padding: 0 1.5em 0 1.5em;
|
91
|
+
}
|
92
|
+
|
93
|
+
div#description {
|
94
|
+
padding: 0.5em 1.5em;
|
95
|
+
background: #efefef;
|
96
|
+
border: 1px dotted #999;
|
97
|
+
}
|
98
|
+
|
99
|
+
div#description h1,h2,h3,h4,h5,h6 {
|
100
|
+
color: #125;;
|
101
|
+
background: transparent;
|
102
|
+
}
|
103
|
+
|
104
|
+
div#validator-badges {
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
div#validator-badges img { border: 0; }
|
108
|
+
|
109
|
+
div#copyright {
|
110
|
+
color: #333;
|
111
|
+
background: #efefef;
|
112
|
+
font: 0.75em sans-serif;
|
113
|
+
margin-top: 5em;
|
114
|
+
margin-bottom: 0;
|
115
|
+
padding: 0.5em 2em;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/* === Classes =================================== */
|
120
|
+
|
121
|
+
table.header-table {
|
122
|
+
color: white;
|
123
|
+
font-size: small;
|
124
|
+
}
|
125
|
+
|
126
|
+
.type-note {
|
127
|
+
font-size: small;
|
128
|
+
color: #DEDEDE;
|
129
|
+
}
|
130
|
+
|
131
|
+
.xxsection-bar {
|
132
|
+
background: #eee;
|
133
|
+
color: #333;
|
134
|
+
padding: 3px;
|
135
|
+
}
|
136
|
+
|
137
|
+
.section-bar {
|
138
|
+
color: #333;
|
139
|
+
border-bottom: 1px solid #999;
|
140
|
+
margin-left: -20px;
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
.section-title {
|
145
|
+
background: #79a;
|
146
|
+
color: #eee;
|
147
|
+
padding: 3px;
|
148
|
+
margin-top: 2em;
|
149
|
+
margin-left: -30px;
|
150
|
+
border: 1px solid #999;
|
151
|
+
}
|
152
|
+
|
153
|
+
.top-aligned-row { vertical-align: top }
|
154
|
+
.bottom-aligned-row { vertical-align: bottom }
|
155
|
+
|
156
|
+
/* --- Context section classes ----------------------- */
|
157
|
+
|
158
|
+
.context-row { }
|
159
|
+
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
160
|
+
.context-item-value { font-size: small; color: #448; }
|
161
|
+
.context-item-desc { color: #333; padding-left: 2em; }
|
162
|
+
|
163
|
+
/* --- Method classes -------------------------- */
|
164
|
+
.method-detail {
|
165
|
+
background: #efefef;
|
166
|
+
padding: 0;
|
167
|
+
margin-top: 0.5em;
|
168
|
+
margin-bottom: 1em;
|
169
|
+
border: 1px dotted #ccc;
|
170
|
+
}
|
171
|
+
.method-heading {
|
172
|
+
color: black;
|
173
|
+
background: #ccc;
|
174
|
+
border-bottom: 1px solid #666;
|
175
|
+
padding: 0.2em 0.5em 0 0.5em;
|
176
|
+
}
|
177
|
+
.method-signature { color: black; background: inherit; }
|
178
|
+
.method-name { font-weight: bold; }
|
179
|
+
.method-args { font-style: italic; }
|
180
|
+
.method-description { padding: 0 0.5em 0 0.5em; }
|
181
|
+
|
182
|
+
/* --- Source code sections -------------------- */
|
183
|
+
|
184
|
+
a.source-toggle { font-size: 90%; }
|
185
|
+
div.method-source-code {
|
186
|
+
background: #262626;
|
187
|
+
color: #ffdead;
|
188
|
+
margin: 1em;
|
189
|
+
padding: 0.5em;
|
190
|
+
border: 1px dashed #999;
|
191
|
+
overflow: hidden;
|
192
|
+
}
|
193
|
+
|
194
|
+
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
195
|
+
|
196
|
+
/* --- Ruby keyword styles --------------------- */
|
197
|
+
|
198
|
+
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
199
|
+
|
200
|
+
.ruby-constant { color: #7fffd4; background: transparent; }
|
201
|
+
.ruby-keyword { color: #00ffff; background: transparent; }
|
202
|
+
.ruby-ivar { color: #eedd82; background: transparent; }
|
203
|
+
.ruby-operator { color: #00ffee; background: transparent; }
|
204
|
+
.ruby-identifier { color: #ffdead; background: transparent; }
|
205
|
+
.ruby-node { color: #ffa07a; background: transparent; }
|
206
|
+
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
207
|
+
.ruby-regexp { color: #ffa07a; background: transparent; }
|
208
|
+
.ruby-value { color: #7fffd4; background: transparent; }
|
@@ -0,0 +1,101 @@
|
|
1
|
+
class Array
|
2
|
+
|
3
|
+
# This method is useful when you have a method that looks like this:
|
4
|
+
# def foo(*args)
|
5
|
+
# do something
|
6
|
+
# end
|
7
|
+
# The problem is when you use the * like that everything that comes in is
|
8
|
+
# an array. Here are a few problems with this:
|
9
|
+
# foo([1,2,3])
|
10
|
+
# When you pass an array into this type of method you get the following nested array:
|
11
|
+
# [[1,2,3]]
|
12
|
+
# The parse_splat_args method, if called, would do this:
|
13
|
+
# args.parse_splat_args # => [1,2,3]
|
14
|
+
# Now say you called this method like such:
|
15
|
+
# foo(1)
|
16
|
+
# args would be [1]
|
17
|
+
# args.parse_splat_args # => 1
|
18
|
+
# Finally
|
19
|
+
# foo
|
20
|
+
# args.parse_splat_args # => nil
|
21
|
+
def parse_splat_args
|
22
|
+
unless self.empty?
|
23
|
+
args = self#.flatten
|
24
|
+
case args.size
|
25
|
+
when 1
|
26
|
+
return args.first # if there was only one arg passed, return just that, without the array
|
27
|
+
when 0
|
28
|
+
return nil # if no args were passed return nil
|
29
|
+
else
|
30
|
+
return args # else return the array back, cause chances are that's what they passed you!
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# This allows you to delete an array of values from another array.
|
36
|
+
# [1,2,3,4,5].delete_from_array([2,3,5]) # => [1,4]
|
37
|
+
def delete_from_array(args)
|
38
|
+
self.collect{ |x| x unless args.include?(x)}.compact
|
39
|
+
end
|
40
|
+
|
41
|
+
# This calls the delete_from_array method, but will permantly replace the existing array.
|
42
|
+
def delete_from_array!(args)
|
43
|
+
self.replace(delete_from_array(args))
|
44
|
+
end
|
45
|
+
|
46
|
+
# This will return a new instance of the array sorted randomly.
|
47
|
+
def randomize(&block)
|
48
|
+
if block_given?
|
49
|
+
self.sort {|x,y| yield x, y}
|
50
|
+
else
|
51
|
+
self.sort_by { rand }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# This calls the randomize method, but will permantly replace the existing array.
|
56
|
+
def randomize!(&block)
|
57
|
+
if block_given?
|
58
|
+
self.replace(self.randomize(&block))
|
59
|
+
else
|
60
|
+
self.replace(self.randomize)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# This will pick a random value from the array
|
65
|
+
def pick_random
|
66
|
+
self[rand(self.length)]
|
67
|
+
end
|
68
|
+
|
69
|
+
# This allows you to easily recurse of the array randomly.
|
70
|
+
def random_each
|
71
|
+
self.randomize.each {|x| yield x}
|
72
|
+
end
|
73
|
+
|
74
|
+
def subset?(other)
|
75
|
+
self.each do |x|
|
76
|
+
return false if !(other.include? x)
|
77
|
+
end
|
78
|
+
true
|
79
|
+
end
|
80
|
+
|
81
|
+
def superset?(other)
|
82
|
+
other.subset?(self)
|
83
|
+
end
|
84
|
+
|
85
|
+
# This will give you a count, as a Hash, of all the values in the Array.
|
86
|
+
# %w{spam spam eggs ham eggs spam}.count # => {"eggs"=>2, "ham"=>1, "spam"=>3}
|
87
|
+
def count
|
88
|
+
k = Hash.new(0)
|
89
|
+
self.each{|x| k[x] += 1}
|
90
|
+
k
|
91
|
+
end
|
92
|
+
|
93
|
+
# This will invert the index and the values and return a Hash of the results.
|
94
|
+
# %w{red yellow orange}.invert # => {"red"=>0, "orange"=>2, "yellow"=>1}
|
95
|
+
def invert
|
96
|
+
h = {}
|
97
|
+
self.each_with_index{|x,i| h[x] = i}
|
98
|
+
h
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|