eymiha_util 1.0.0 → 1.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.
Files changed (91) hide show
  1. data/gem_package.rb +1 -1
  2. data/html/classes/Eymiha.html +16 -1
  3. data/html/classes/Eymiha/BaseEnvelope.html +16 -16
  4. data/html/classes/Eymiha/BaseEnvelope.src/{M000010.html → M000014.html} +0 -0
  5. data/html/classes/Eymiha/BaseEnvelope.src/{M000011.html → M000015.html} +0 -0
  6. data/html/classes/Eymiha/BaseEnvelope.src/{M000012.html → M000016.html} +0 -0
  7. data/html/classes/Eymiha/EasyLog.html +246 -0
  8. data/html/classes/Eymiha/EasyLog.src/M000001.html +20 -0
  9. data/html/classes/Eymiha/EasyLog.src/M000002.html +18 -0
  10. data/html/classes/Eymiha/EasyLog.src/M000003.html +18 -0
  11. data/html/classes/Eymiha/EasyLog.src/M000004.html +18 -0
  12. data/html/classes/Eymiha/EasyLogFormatter.html +192 -0
  13. data/html/classes/Eymiha/EasyLogFormatter.src/M000017.html +21 -0
  14. data/html/classes/Eymiha/EasyLogFormatter.src/M000018.html +18 -0
  15. data/html/classes/Eymiha/EasyLogFormatter.src/M000019.html +18 -0
  16. data/html/classes/Eymiha/EasyLogger.html +218 -0
  17. data/html/classes/Eymiha/EasyLogger.src/M000032.html +22 -0
  18. data/html/classes/Eymiha/EasyLogger.src/M000033.html +18 -0
  19. data/html/classes/Eymiha/EasyLogger.src/M000034.html +18 -0
  20. data/html/classes/Eymiha/Envelope.html +47 -47
  21. data/html/classes/Eymiha/Envelope.src/{M000025.html → M000044.html} +0 -0
  22. data/html/classes/Eymiha/Envelope.src/{M000026.html → M000045.html} +0 -0
  23. data/html/classes/Eymiha/Envelope.src/{M000027.html → M000046.html} +0 -0
  24. data/html/classes/Eymiha/Envelope.src/{M000028.html → M000047.html} +0 -0
  25. data/html/classes/Eymiha/Envelope.src/{M000029.html → M000048.html} +0 -0
  26. data/html/classes/Eymiha/Envelope.src/{M000030.html → M000049.html} +0 -0
  27. data/html/classes/Eymiha/Envelope.src/{M000032.html → M000051.html} +0 -0
  28. data/html/classes/Eymiha/ForwardReference.html +11 -11
  29. data/html/classes/Eymiha/ForwardReference.src/{M000033.html → M000054.html} +0 -0
  30. data/html/classes/Eymiha/ForwardReference.src/{M000034.html → M000055.html} +0 -0
  31. data/html/classes/Eymiha/ForwardReferencing.html +46 -46
  32. data/html/classes/Eymiha/ForwardReferencing.src/M000005.html +6 -4
  33. data/html/classes/Eymiha/ForwardReferencing.src/M000006.html +6 -11
  34. data/html/classes/Eymiha/ForwardReferencing.src/M000007.html +6 -4
  35. data/html/classes/Eymiha/ForwardReferencing.src/M000008.html +18 -4
  36. data/html/classes/Eymiha/ForwardReferencing.src/M000009.html +4 -4
  37. data/html/classes/Eymiha/ForwardReferencing.src/M000010.html +25 -0
  38. data/html/classes/Eymiha/ForwardReferencing.src/M000011.html +18 -0
  39. data/html/classes/Eymiha/ForwardReferencing.src/M000012.html +18 -0
  40. data/html/classes/Eymiha/ForwardReferencing.src/M000013.html +18 -0
  41. data/html/classes/Eymiha/Histogram.html +60 -60
  42. data/html/classes/Eymiha/Histogram.src/{M000016.html → M000035.html} +0 -0
  43. data/html/classes/Eymiha/Histogram.src/{M000017.html → M000036.html} +0 -0
  44. data/html/classes/Eymiha/Histogram.src/{M000018.html → M000037.html} +0 -0
  45. data/html/classes/Eymiha/Histogram.src/{M000019.html → M000038.html} +0 -0
  46. data/html/classes/Eymiha/Histogram.src/{M000020.html → M000039.html} +0 -0
  47. data/html/classes/Eymiha/Histogram.src/{M000021.html → M000040.html} +0 -0
  48. data/html/classes/Eymiha/Histogram.src/{M000022.html → M000041.html} +0 -0
  49. data/html/classes/Eymiha/Histogram.src/{M000023.html → M000042.html} +0 -0
  50. data/html/classes/Eymiha/Histogram.src/{M000024.html → M000043.html} +0 -0
  51. data/html/classes/Eymiha/MethodicHash.html +17 -17
  52. data/html/classes/Eymiha/MethodicHash.src/{M000013.html → M000026.html} +0 -0
  53. data/html/classes/Eymiha/MethodicHash.src/{M000014.html → M000027.html} +0 -0
  54. data/html/classes/Eymiha/MethodicHash.src/{M000015.html → M000028.html} +0 -0
  55. data/html/classes/Eymiha/StringMap.html +184 -0
  56. data/html/classes/Eymiha/StringMap.src/M000029.html +18 -0
  57. data/html/classes/Eymiha/StringMap.src/M000030.html +18 -0
  58. data/html/classes/Eymiha/StringMap.src/M000031.html +18 -0
  59. data/html/classes/Eymiha/StringMapException.html +111 -0
  60. data/html/classes/Eymiha/StringMapFormat.html +227 -0
  61. data/html/classes/Eymiha/StringMapFormat.src/M000020.html +20 -0
  62. data/html/classes/Eymiha/StringMapFormat.src/M000021.html +19 -0
  63. data/html/classes/Eymiha/StringMapFormat.src/M000022.html +18 -0
  64. data/html/classes/Eymiha/StringMapFormat.src/M000023.html +22 -0
  65. data/html/classes/Eymiha/StringMapFormat.src/M000024.html +19 -0
  66. data/html/classes/Eymiha/StringMapFormat.src/M000025.html +17 -0
  67. data/html/classes/Eymiha/StringMapFormatItem.html +156 -0
  68. data/html/classes/Eymiha/StringMapFormatItem.src/M000052.html +21 -0
  69. data/html/classes/Eymiha/StringMapFormatItem.src/M000053.html +18 -0
  70. data/html/created.rid +1 -1
  71. data/html/files/lib/eymiha/util/easylog_rb.html +116 -0
  72. data/html/files/lib/eymiha/util/enum_rb.html +1 -1
  73. data/html/files/lib/eymiha/util/envelope_rb.html +1 -1
  74. data/html/files/lib/eymiha/util/forward_referencing_rb.html +1 -1
  75. data/html/files/lib/eymiha/util/histogram_rb.html +1 -1
  76. data/html/files/lib/eymiha/util/methodic_hash_rb.html +1 -1
  77. data/html/files/lib/eymiha/util/string_map_rb.html +101 -0
  78. data/html/files/lib/eymiha/util_rb.html +2 -1
  79. data/html/fr_class_index.html +7 -0
  80. data/html/fr_file_index.html +2 -0
  81. data/html/fr_method_index.html +55 -34
  82. data/html/index.html +1 -1
  83. data/lib/eymiha/util.rb +1 -0
  84. data/lib/eymiha/util/easylog.rb +184 -0
  85. data/lib/eymiha/util/string_map.rb +78 -0
  86. data/test/tc_easylog.rb +106 -0
  87. metadata +69 -30
  88. data/html/classes/Eymiha/ForwardReferencing.src/M000001.html +0 -20
  89. data/html/classes/Eymiha/ForwardReferencing.src/M000002.html +0 -20
  90. data/html/classes/Eymiha/ForwardReferencing.src/M000003.html +0 -20
  91. data/html/classes/Eymiha/ForwardReferencing.src/M000004.html +0 -32
data/html/index.html CHANGED
@@ -19,6 +19,6 @@
19
19
  <frame src="fr_class_index.html" name="Classes" />
20
20
  <frame src="fr_method_index.html" name="Methods" />
21
21
  </frameset>
22
- <frame src="files/lib/eymiha/util/enum_rb.html" name="docwin" />
22
+ <frame src="files/lib/eymiha/util/easylog_rb.html" name="docwin" />
23
23
  </frameset>
24
24
  </html>
data/lib/eymiha/util.rb CHANGED
@@ -3,3 +3,4 @@ require 'eymiha/util/envelope'
3
3
  require 'eymiha/util/forward_referencing'
4
4
  require 'eymiha/util/histogram'
5
5
  require 'eymiha/util/methodic_hash'
6
+ require 'eymiha/util/easylog'
@@ -0,0 +1,184 @@
1
+ require 'eymiha'
2
+ require 'logger'
3
+
4
+
5
+ module Eymiha
6
+
7
+ # EasyLogFormatter instances are used to format logging messages generated by
8
+ # the EasyLogger class. They consist of a date-time stamp, the severity and
9
+ # a log message.
10
+ class EasyLogFormatter < Logger::Formatter
11
+
12
+ # Creates an instance, using the specified subsecond precision to format
13
+ # fractional seconds. If nil, the calculated subsecond precision of the
14
+ # Time class is used.
15
+ def initialize(subsecond_precision = nil)
16
+ super()
17
+ @AppLogFormat = "%s %-5s %s\n"
18
+ self.datetime_format = "%m/%d/%y %H:%M:%S."
19
+ @usecs = subsecond_precision || Time.subsecond_precision
20
+ end
21
+
22
+ # Returns a String containing a date-time stamp for the given time in
23
+ # month/day/year hour:minute:second.microsecond format with the microsecond
24
+ # part having the precision specified when the instance was created.
25
+ def format_datetime(time)
26
+ time.strftime(datetime_format) << ("%06d" % time.usec)[0,@usecs]
27
+ end
28
+
29
+ # Returns a String containing a formatted log entry consisting of the given
30
+ # date-time stamp, severity and log message.
31
+ def call(severity, time, progname, msg)
32
+ @AppLogFormat % [format_datetime(time), severity, msg2str(msg)]
33
+ end
34
+
35
+ end
36
+
37
+ # Primarily, EasyLogger provides a convienient interface to the Logger at the
38
+ # class level. The class contains a "default" instance of Logger to which the
39
+ # class methods send their log messages. By convention, the first instance
40
+ # created is made the default, however this can be changed. Of course,
41
+ # instances may be used directly for logging if desired. Instances format
42
+ # their log entries using an EasyLogFormatter.
43
+ #
44
+ # Five class-level methods are built that have the same names as the instance
45
+ # methods: debug, info, warn, error and fatal. Their arguments are different,
46
+ # however, being the message to be logged and optionally, one or more Loggers
47
+ # to log the message. If no Loggers are passed, the default is used, and if
48
+ # that is nil,no logging takes place.
49
+ class EasyLogger < Logger
50
+
51
+ class_attr_reader :default_logger
52
+ attr_accessor :classify
53
+
54
+ # Creates a new EasyLogger instance. Logging is recorded through the given
55
+ # logdev, either an IO stream or to a file when logdev is a String
56
+ # containing its filename. Shift age is either the number of log files to
57
+ # keep, or the frequency of rotation. Shift size is the maximum logfile
58
+ # size, applicable when shift age is a number. Subsecond precision is the
59
+ # number of decimal places that express fractional seconds. If this is the
60
+ # first instance being created, it is remembered and used by the logging
61
+ # methods at the class level as the default logger.
62
+ def initialize(logdev, shift_age = 'weekly', shift_size = 1048576,
63
+ subsecond_precision = nil)
64
+ super(logdev, shift_age, shift_size)
65
+ @formatter = EasyLogFormatter.new(subsecond_precision)
66
+ @classify = true
67
+ @@default_logger = self unless @@default_logger
68
+ end
69
+
70
+ # Changes the default logger to the new logger.
71
+ def self.change_logger(new)
72
+ old, @@default_logger = @@default_logger, new
73
+ end
74
+
75
+ # Sets the default logger to nil, indicating that further class level
76
+ # logging through the default logger mechanism is disabled.
77
+ def self.finish_logging
78
+ change_logger nil
79
+ end
80
+
81
+ private
82
+
83
+ def self.build_loggers
84
+ (0..4).collect { |i| Logger::SEV_LABEL[i].downcase }.each do |severity|
85
+ EasyLogger.class_eval <<EOF
86
+ def self.#{severity}(message,*loggers)
87
+ loggers = [@@default_logger] if loggers.length == 0
88
+ loggers.compact.each { |logger| logger.#{severity}(message) }
89
+ end
90
+ EOF
91
+ end
92
+ end
93
+
94
+ self.build_loggers
95
+
96
+ end
97
+
98
+
99
+ # EasyLog is a quick and convenient way to implement logging in Ruby code.
100
+ # By requiring the eymiha/util/easylog code, Easylog is included into module
101
+ # and is subsequently available to all classes.
102
+ #
103
+ # There is a natural flow to EasyLog logging. First logging is started
104
+ # somewhere on high
105
+ #
106
+ # start_logging filename
107
+ #
108
+ # then messages are written to the log with the appropriate severity (here
109
+ # an informational message is logged)
110
+ #
111
+ # log_info "something happened: #{foo}"
112
+ #
113
+ # and optionally, when finished,
114
+ #
115
+ # finish_logging
116
+ #
117
+ # The upshot is that logging can be done from anywhere, and is as simple and
118
+ # easy as possible.
119
+ #
120
+ # The module builds five methods for EasyLog logging corresponding to the
121
+ # five Logger severities: log_debug, log_info, log_warn, log_error and
122
+ # log_fatal. Their arguments are a message to be logged, and optionally
123
+ # one or more EasyLoggers that will be the targets of the message.
124
+ #
125
+ # Note that the classify attribute of an EasyLogger stores the decision
126
+ # about adding the class name to the end of the message or not; by default
127
+ # it is true and class names are added.
128
+ #
129
+ # easylogger.classify = false
130
+ #
131
+ # will turn this off.
132
+ module EasyLog
133
+
134
+ # Creates a new EasyLogger instance with the given arguments, and uses it
135
+ # for all subsequent EasyLog logging. The arguments are the same as used in
136
+ # EasyLogger creation.
137
+ def start_logging(logdev, shift_age = 'weekly', shift_size = 1048576,
138
+ subsecond_precision = nil)
139
+ EasyLogger.finish_logging
140
+ EasyLogger.new(logdev, shift_age, shift_size, subsecond_precision)
141
+ end
142
+
143
+ # Returns the EasyLogger that is being used for EasyLog logging.
144
+ def easylogger
145
+ EasyLogger.default_logger
146
+ end
147
+
148
+ # Changes the EasyLogger used for EasyLog logging to the given EasyLogger.
149
+ def change_easylogger(easylogger)
150
+ EasyLogger.change_logger(easylogger)
151
+ end
152
+
153
+ # Turns off EasyLog logging until restarted.
154
+ def finish_logging
155
+ EasyLogger.finish_logging
156
+ end
157
+
158
+ private
159
+
160
+ def classify_log_message(message,easylogger)
161
+ ((easylogger != nil) ? easylogger.classify : false) ?
162
+ "#{message} (#{class_name})" : message
163
+ end
164
+
165
+ def self.build_loggers
166
+ (0..4).collect { |i| Logger::SEV_LABEL[i].downcase }.each do |severity|
167
+ EasyLog.module_eval <<EOF
168
+ def log_#{severity}(message,*easyloggers)
169
+ easyloggers = [easylogger] if easyloggers.size == 0
170
+ easyloggers.flatten.each { |easylogger|
171
+ EasyLogger.#{severity}(classify_log_message(message,easylogger),easylogger)
172
+ }
173
+ end
174
+ EOF
175
+ end
176
+ end
177
+
178
+ self.build_loggers
179
+
180
+ end
181
+
182
+ end
183
+
184
+ include Eymiha::EasyLog
@@ -0,0 +1,78 @@
1
+ module Eymiha
2
+
3
+ class StringMapException < Execption
4
+ end
5
+
6
+ class StringMap < MethodicHash
7
+
8
+ attr_reader :_format
9
+
10
+ def initialize format
11
+ @_format = StringMapFormat.new(format)
12
+ end
13
+
14
+ def encode_string
15
+ @_format.encode self
16
+ end
17
+
18
+ def decode_string(string)
19
+ @_format.decode self, string
20
+ end
21
+
22
+ end
23
+
24
+
25
+ class StringMapFormat
26
+
27
+ attr_reader :format
28
+
29
+ def initialize format, buffer = nil
30
+ @_format = (format.kind_of? StringMapFormat) ?
31
+ format._format.copy : itemize(format)
32
+ @buffer = buffer || make_buffer
33
+ end
34
+
35
+ def itemize format
36
+ itemized_format = []
37
+ format.each { |element| StringMapFormatItem.new
38
+ end
39
+
40
+ def make_buffer
41
+ instance_eval "@buffer="#{(1..buffersize(true)).each { puts ' ' }}""
42
+ end
43
+
44
+ def buffersize(calculate = false)
45
+ if calculate
46
+ @format.collect{ |item| item.next_start }.max
47
+ else
48
+ @buffer.size
49
+ end
50
+ end
51
+
52
+ def encode string_map
53
+ buffer = @buffer.copy
54
+ @format.each { |item|
55
+ end
56
+
57
+ def decode string_map, string
58
+ end
59
+
60
+ end
61
+
62
+
63
+ class StringMapFormatItem < MethodicHash
64
+
65
+ def initialize(hash)
66
+ self.merge hash
67
+ raise StringMapError, "Invalid Item Format" unless
68
+ name and start and length
69
+ self.klass = String unless klass
70
+ end
71
+
72
+ def next_start
73
+ start + length
74
+ end
75
+
76
+ end
77
+
78
+ end
@@ -0,0 +1,106 @@
1
+ require 'test/unit'
2
+
3
+ require 'stringio'
4
+ require 'eymiha/util/easylog'
5
+
6
+ include Eymiha
7
+
8
+ class TC_log < Test::Unit::TestCase
9
+
10
+ def teardown
11
+ finish_logging
12
+ end
13
+
14
+ def test_debug
15
+ log = StringIO.new
16
+ start_logging log
17
+ log_debug "logging"
18
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* DEBUG logging \(TC_log\)/ =~
19
+ log.string)
20
+ end
21
+
22
+ def test_info
23
+ log = StringIO.new
24
+ start_logging log
25
+ log_info "logging"
26
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO logging \(TC_log\)/ =~
27
+ log.string)
28
+ end
29
+
30
+ def test_warn
31
+ log = StringIO.new
32
+ start_logging log
33
+ log_warn "logging"
34
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* WARN logging \(TC_log\)/ =~
35
+ log.string)
36
+ end
37
+
38
+ def test_error
39
+ log = StringIO.new
40
+ start_logging log
41
+ log_error "logging"
42
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* ERROR logging \(TC_log\)/ =~
43
+ log.string)
44
+ end
45
+
46
+ def test_fatal
47
+ log = StringIO.new
48
+ start_logging log
49
+ log_fatal "logging"
50
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* FATAL logging \(TC_log\)/ =~
51
+ log.string)
52
+ end
53
+
54
+ def test_easylogger_instance
55
+ log1 = StringIO.new
56
+ logger1 = EasyLogger.new(log1)
57
+ log2 = StringIO.new
58
+ logger2 = EasyLogger.new(log2)
59
+ logger1.info("once")
60
+ logger2.info("twice")
61
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO once/ =~
62
+ log1.string)
63
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO twice/ =~
64
+ log2.string)
65
+ end
66
+
67
+ def test_change_log
68
+ log1 = StringIO.new
69
+ log2 = StringIO.new
70
+ start_logging log1
71
+ logger2 = EasyLogger.new(log2)
72
+ log_info "once"
73
+ change_easylogger logger2
74
+ log_info "twice"
75
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO once \(TC_log\)/ =~
76
+ log1.string)
77
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO twice \(TC_log\)/ =~
78
+ log2.string)
79
+ end
80
+
81
+ def test_multi_log
82
+ log1 = StringIO.new
83
+ log2 = StringIO.new
84
+ start_logging log1
85
+ logger2 = EasyLogger.new(log2)
86
+ log_info "once"
87
+ log_info "twice",logger2
88
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO once \(TC_log\)/ =~
89
+ log1.string)
90
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO twice \(TC_log\)/ =~
91
+ log2.string)
92
+ end
93
+
94
+ def test_change_classify
95
+ log = StringIO.new
96
+ start_logging log
97
+ easylogger.classify = false
98
+ log_info "logging"
99
+ assert(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO logging/ =~
100
+ log.string)
101
+ assert(!(/\d\d\/\d\d\/\d\d \d\d:\d\d:\d\d.\d* INFO logging \(/ =~
102
+ log.string))
103
+ end
104
+
105
+ end
106
+
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: eymiha_util
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
7
- date: 2008-05-08 00:00:00 -04:00
6
+ version: 1.0.1
7
+ date: 2008-06-09 00:00:00 -04:00
8
8
  summary: Eymiha general utility classes and methods
9
9
  require_paths:
10
10
  - lib
@@ -33,12 +33,15 @@ files:
33
33
  - rakefile.rb
34
34
  - lib/eymiha
35
35
  - lib/eymiha/util
36
+ - lib/eymiha/util/easylog.rb
36
37
  - lib/eymiha/util/enum.rb
37
38
  - lib/eymiha/util/envelope.rb
38
39
  - lib/eymiha/util/forward_referencing.rb
39
40
  - lib/eymiha/util/histogram.rb
40
41
  - lib/eymiha/util/methodic_hash.rb
42
+ - lib/eymiha/util/string_map.rb
41
43
  - lib/eymiha/util.rb
44
+ - test/tc_easylog.rb
42
45
  - test/tc_enum.rb
43
46
  - test/tc_envelope.rb
44
47
  - test/tc_forward_referencing.rb
@@ -48,64 +51,100 @@ files:
48
51
  - html/classes/Eymiha
49
52
  - html/classes/Eymiha/BaseEnvelope.html
50
53
  - html/classes/Eymiha/BaseEnvelope.src
51
- - html/classes/Eymiha/BaseEnvelope.src/M000010.html
52
- - html/classes/Eymiha/BaseEnvelope.src/M000011.html
53
- - html/classes/Eymiha/BaseEnvelope.src/M000012.html
54
+ - html/classes/Eymiha/BaseEnvelope.src/M000014.html
55
+ - html/classes/Eymiha/BaseEnvelope.src/M000015.html
56
+ - html/classes/Eymiha/BaseEnvelope.src/M000016.html
57
+ - html/classes/Eymiha/EasyLog.html
58
+ - html/classes/Eymiha/EasyLog.src
59
+ - html/classes/Eymiha/EasyLog.src/M000001.html
60
+ - html/classes/Eymiha/EasyLog.src/M000002.html
61
+ - html/classes/Eymiha/EasyLog.src/M000003.html
62
+ - html/classes/Eymiha/EasyLog.src/M000004.html
63
+ - html/classes/Eymiha/EasyLogFormatter.html
64
+ - html/classes/Eymiha/EasyLogFormatter.src
65
+ - html/classes/Eymiha/EasyLogFormatter.src/M000017.html
66
+ - html/classes/Eymiha/EasyLogFormatter.src/M000018.html
67
+ - html/classes/Eymiha/EasyLogFormatter.src/M000019.html
68
+ - html/classes/Eymiha/EasyLogger.html
69
+ - html/classes/Eymiha/EasyLogger.src
70
+ - html/classes/Eymiha/EasyLogger.src/M000032.html
71
+ - html/classes/Eymiha/EasyLogger.src/M000033.html
72
+ - html/classes/Eymiha/EasyLogger.src/M000034.html
54
73
  - html/classes/Eymiha/Enum.html
55
74
  - html/classes/Eymiha/Envelope.html
56
75
  - html/classes/Eymiha/Envelope.src
57
- - html/classes/Eymiha/Envelope.src/M000025.html
58
- - html/classes/Eymiha/Envelope.src/M000026.html
59
- - html/classes/Eymiha/Envelope.src/M000027.html
60
- - html/classes/Eymiha/Envelope.src/M000028.html
61
- - html/classes/Eymiha/Envelope.src/M000029.html
62
- - html/classes/Eymiha/Envelope.src/M000030.html
63
- - html/classes/Eymiha/Envelope.src/M000032.html
76
+ - html/classes/Eymiha/Envelope.src/M000044.html
77
+ - html/classes/Eymiha/Envelope.src/M000045.html
78
+ - html/classes/Eymiha/Envelope.src/M000046.html
79
+ - html/classes/Eymiha/Envelope.src/M000047.html
80
+ - html/classes/Eymiha/Envelope.src/M000048.html
81
+ - html/classes/Eymiha/Envelope.src/M000049.html
82
+ - html/classes/Eymiha/Envelope.src/M000051.html
64
83
  - html/classes/Eymiha/EnvelopeException.html
65
84
  - html/classes/Eymiha/ForwardReference.html
66
85
  - html/classes/Eymiha/ForwardReference.src
67
- - html/classes/Eymiha/ForwardReference.src/M000033.html
68
- - html/classes/Eymiha/ForwardReference.src/M000034.html
86
+ - html/classes/Eymiha/ForwardReference.src/M000054.html
87
+ - html/classes/Eymiha/ForwardReference.src/M000055.html
69
88
  - html/classes/Eymiha/ForwardReferencer.html
70
89
  - html/classes/Eymiha/ForwardReferencing.html
71
90
  - html/classes/Eymiha/ForwardReferencing.src
72
- - html/classes/Eymiha/ForwardReferencing.src/M000001.html
73
- - html/classes/Eymiha/ForwardReferencing.src/M000002.html
74
- - html/classes/Eymiha/ForwardReferencing.src/M000003.html
75
- - html/classes/Eymiha/ForwardReferencing.src/M000004.html
76
91
  - html/classes/Eymiha/ForwardReferencing.src/M000005.html
77
92
  - html/classes/Eymiha/ForwardReferencing.src/M000006.html
78
93
  - html/classes/Eymiha/ForwardReferencing.src/M000007.html
79
94
  - html/classes/Eymiha/ForwardReferencing.src/M000008.html
80
95
  - html/classes/Eymiha/ForwardReferencing.src/M000009.html
96
+ - html/classes/Eymiha/ForwardReferencing.src/M000010.html
97
+ - html/classes/Eymiha/ForwardReferencing.src/M000011.html
98
+ - html/classes/Eymiha/ForwardReferencing.src/M000012.html
99
+ - html/classes/Eymiha/ForwardReferencing.src/M000013.html
81
100
  - html/classes/Eymiha/Histogram.html
82
101
  - html/classes/Eymiha/Histogram.src
83
- - html/classes/Eymiha/Histogram.src/M000016.html
84
- - html/classes/Eymiha/Histogram.src/M000017.html
85
- - html/classes/Eymiha/Histogram.src/M000018.html
86
- - html/classes/Eymiha/Histogram.src/M000019.html
87
- - html/classes/Eymiha/Histogram.src/M000020.html
88
- - html/classes/Eymiha/Histogram.src/M000021.html
89
- - html/classes/Eymiha/Histogram.src/M000022.html
90
- - html/classes/Eymiha/Histogram.src/M000023.html
91
- - html/classes/Eymiha/Histogram.src/M000024.html
102
+ - html/classes/Eymiha/Histogram.src/M000035.html
103
+ - html/classes/Eymiha/Histogram.src/M000036.html
104
+ - html/classes/Eymiha/Histogram.src/M000037.html
105
+ - html/classes/Eymiha/Histogram.src/M000038.html
106
+ - html/classes/Eymiha/Histogram.src/M000039.html
107
+ - html/classes/Eymiha/Histogram.src/M000040.html
108
+ - html/classes/Eymiha/Histogram.src/M000041.html
109
+ - html/classes/Eymiha/Histogram.src/M000042.html
110
+ - html/classes/Eymiha/Histogram.src/M000043.html
92
111
  - html/classes/Eymiha/HistogramException.html
93
112
  - html/classes/Eymiha/MethodicHash.html
94
113
  - html/classes/Eymiha/MethodicHash.src
95
- - html/classes/Eymiha/MethodicHash.src/M000013.html
96
- - html/classes/Eymiha/MethodicHash.src/M000014.html
97
- - html/classes/Eymiha/MethodicHash.src/M000015.html
114
+ - html/classes/Eymiha/MethodicHash.src/M000026.html
115
+ - html/classes/Eymiha/MethodicHash.src/M000027.html
116
+ - html/classes/Eymiha/MethodicHash.src/M000028.html
117
+ - html/classes/Eymiha/StringMap.html
118
+ - html/classes/Eymiha/StringMap.src
119
+ - html/classes/Eymiha/StringMap.src/M000029.html
120
+ - html/classes/Eymiha/StringMap.src/M000030.html
121
+ - html/classes/Eymiha/StringMap.src/M000031.html
122
+ - html/classes/Eymiha/StringMapException.html
123
+ - html/classes/Eymiha/StringMapFormat.html
124
+ - html/classes/Eymiha/StringMapFormat.src
125
+ - html/classes/Eymiha/StringMapFormat.src/M000020.html
126
+ - html/classes/Eymiha/StringMapFormat.src/M000021.html
127
+ - html/classes/Eymiha/StringMapFormat.src/M000022.html
128
+ - html/classes/Eymiha/StringMapFormat.src/M000023.html
129
+ - html/classes/Eymiha/StringMapFormat.src/M000024.html
130
+ - html/classes/Eymiha/StringMapFormat.src/M000025.html
131
+ - html/classes/Eymiha/StringMapFormatItem.html
132
+ - html/classes/Eymiha/StringMapFormatItem.src
133
+ - html/classes/Eymiha/StringMapFormatItem.src/M000052.html
134
+ - html/classes/Eymiha/StringMapFormatItem.src/M000053.html
98
135
  - html/classes/Eymiha.html
99
136
  - html/created.rid
100
137
  - html/files
101
138
  - html/files/lib
102
139
  - html/files/lib/eymiha
103
140
  - html/files/lib/eymiha/util
141
+ - html/files/lib/eymiha/util/easylog_rb.html
104
142
  - html/files/lib/eymiha/util/enum_rb.html
105
143
  - html/files/lib/eymiha/util/envelope_rb.html
106
144
  - html/files/lib/eymiha/util/forward_referencing_rb.html
107
145
  - html/files/lib/eymiha/util/histogram_rb.html
108
146
  - html/files/lib/eymiha/util/methodic_hash_rb.html
147
+ - html/files/lib/eymiha/util/string_map_rb.html
109
148
  - html/files/lib/eymiha/util_rb.html
110
149
  - html/fr_class_index.html
111
150
  - html/fr_file_index.html