eymiha 1.0.3 → 1.0.4

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.
@@ -0,0 +1,33 @@
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/File.html">File</a><br />
26
+ <a href="classes/Hash.html">Hash</a><br />
27
+ <a href="classes/Module.html">Module</a><br />
28
+ <a href="classes/Object.html">Object</a><br />
29
+ <a href="classes/Time.html">Time</a><br />
30
+ </div>
31
+ </div>
32
+ </body>
33
+ </html>
@@ -0,0 +1,27 @@
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/lib/eymiha_rb.html">lib/eymiha.rb</a><br />
24
+ </div>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,38 @@
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/Class.html#M000008">allows_object_remapping_in_new (Class)</a><br />
24
+ <a href="classes/Module.html#M000004">class_attr_accessor (Module)</a><br />
25
+ <a href="classes/Module.html#M000005">class_attr_reader (Module)</a><br />
26
+ <a href="classes/Module.html#M000006">class_attr_writer (Module)</a><br />
27
+ <a href="classes/Object.html#M000010">class_name (Object)</a><br />
28
+ <a href="classes/File.html#M000012">home_directory (File)</a><br />
29
+ <a href="classes/Object.html#M000011">optional_require (Object)</a><br />
30
+ <a href="classes/Object.html#M000009">raise_no_conversion (Object)</a><br />
31
+ <a href="classes/Class.html#M000007">remap_new_object (Class)</a><br />
32
+ <a href="classes/Time.html#M000001">subsecond_precision (Time)</a><br />
33
+ <a href="classes/Array.html#M000002">to_s (Array)</a><br />
34
+ <a href="classes/Hash.html#M000003">to_s (Hash)</a><br />
35
+ </div>
36
+ </div>
37
+ </body>
38
+ </html>
@@ -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
+ RDoc Documentation
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>RDoc Documentation</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/lib/eymiha_rb.html" name="docwin" />
23
+ </frameset>
24
+ </html>
@@ -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; }
@@ -122,7 +122,7 @@ class Time
122
122
  # Returns the actual number of digits of precision of less-than-second values.
123
123
  def self.subsecond_precision
124
124
  @@subsecond_precision ||=
125
- (1..5).collect {
125
+ (1..10).collect {
126
126
  sleep 0.001001
127
127
  s = "#{Time.now.usec}"
128
128
  s.length - (/[1-9]/ =~ s.reverse)
@@ -130,3 +130,35 @@ class Time
130
130
  end
131
131
 
132
132
  end
133
+
134
+
135
+ # Provides object remapping in new - that is, lets new return an object
136
+ # different from the new one that was requested.
137
+
138
+ class Class
139
+
140
+ class_attr_reader :new_remap
141
+
142
+ @@new_remap = {}
143
+
144
+ # remaps the original object to a different object to be returned by new
145
+ def self.remap_new_object(o,r)
146
+ @@new_remap[o] = r
147
+ end
148
+
149
+ # redefines the class' new method to be able to return a different object
150
+ def allows_object_remapping_in_new
151
+ self.class_eval <<EOS
152
+ class<<self
153
+ alias old_new new
154
+
155
+ def new(*args,&block)
156
+ obj = old_new(*args,&block)
157
+ Class.new_remap.delete(obj) || obj
158
+ end
159
+ end
160
+ EOS
161
+ end
162
+
163
+ end
164
+
@@ -128,3 +128,24 @@ class TC_class_attr < Test::Unit::TestCase
128
128
  end
129
129
 
130
130
  end
131
+
132
+ class TC_remap < Test::Unit::TestCase
133
+
134
+ class Foo
135
+ allows_object_remapping_in_new
136
+
137
+ def initialize(n)
138
+ Class.remap_new_object(self,Bar.new) if n > 0
139
+ end
140
+ end
141
+
142
+ class Bar
143
+ end
144
+
145
+ def test_remap
146
+ assert(Foo.new(0).class == TC_remap::Foo)
147
+ assert(Foo.new(1).class == TC_remap::Bar)
148
+ assert(Bar.new.class == TC_remap::Bar)
149
+ end
150
+
151
+ end
metadata CHANGED
@@ -1,49 +1,92 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: eymiha
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.0.3
7
- date: 2008-05-22 00:00:00 -04:00
8
- summary: Eymiha general Ruby extensions
9
- require_paths:
10
- - lib
11
- email: dave@eymiha.com
12
- homepage: http://www.eymiha.com
13
- rubyforge_project: cori
14
- description:
15
- autorequire: eymiha
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 1.0.4
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Dave Anderson
8
+ autorequire: eymiha
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-06-11 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: dave@eymiha.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
31
24
  files:
32
25
  - gem_package.rb
33
26
  - rakefile.rb
34
27
  - lib/eymiha.rb
35
28
  - test/tc_eymiha.rb
36
- test_files: []
37
-
29
+ - html/classes
30
+ - html/classes/Array.html
31
+ - html/classes/Array.src
32
+ - html/classes/Array.src/M000002.html
33
+ - html/classes/Class.html
34
+ - html/classes/Class.src
35
+ - html/classes/Class.src/M000007.html
36
+ - html/classes/Class.src/M000008.html
37
+ - html/classes/File.html
38
+ - html/classes/File.src
39
+ - html/classes/File.src/M000012.html
40
+ - html/classes/Hash.html
41
+ - html/classes/Hash.src
42
+ - html/classes/Hash.src/M000003.html
43
+ - html/classes/Module.html
44
+ - html/classes/Module.src
45
+ - html/classes/Module.src/M000004.html
46
+ - html/classes/Module.src/M000005.html
47
+ - html/classes/Module.src/M000006.html
48
+ - html/classes/Object.html
49
+ - html/classes/Object.src
50
+ - html/classes/Object.src/M000009.html
51
+ - html/classes/Object.src/M000010.html
52
+ - html/classes/Object.src/M000011.html
53
+ - html/classes/Time.html
54
+ - html/classes/Time.src
55
+ - html/classes/Time.src/M000001.html
56
+ - html/created.rid
57
+ - html/files
58
+ - html/files/lib
59
+ - html/files/lib/eymiha_rb.html
60
+ - html/fr_class_index.html
61
+ - html/fr_file_index.html
62
+ - html/fr_method_index.html
63
+ - html/index.html
64
+ - html/rdoc-style.css
65
+ has_rdoc: true
66
+ homepage: http://www.eymiha.com
67
+ post_install_message:
38
68
  rdoc_options:
39
69
  - --all
40
- extra_rdoc_files: []
41
-
42
- executables: []
43
-
44
- extensions: []
45
-
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
46
84
  requirements: []
47
85
 
48
- dependencies: []
86
+ rubyforge_project: cori
87
+ rubygems_version: 1.0.1
88
+ signing_key:
89
+ specification_version: 2
90
+ summary: Eymiha general Ruby extensions
91
+ test_files: []
49
92