perception 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
File without changes
File without changes
@@ -1,9 +1,9 @@
1
1
  console.rb
2
- History.txt
3
- License.txt
2
+ History.rdoc
3
+ License.rdoc
4
4
  Manifest.txt
5
5
  Rakefile.rb
6
- README.txt
6
+ README.rdoc
7
7
  version.rb
8
8
  demo/demo_pp.rb
9
9
  demo/demo_system_info.rb
@@ -1,8 +1,7 @@
1
- # ruby encoding: utf-8
2
1
 
3
2
  = Perception - Readable Printouts For Logs And Console
4
3
 
5
- http://bklippstein.github.com/perception/
4
+ http://bklippstein.github.com/perception/frames.html
6
5
 
7
6
  Powerfull replacement for print, puts and pp. Intuitive toolkit for simple everyday debugging.
8
7
 
@@ -21,20 +20,11 @@ use +see+ instead of pp, puts, print.
21
20
  [] There are demos included. Run them.
22
21
 
23
22
 
24
- == License
25
- cc-by-sa
26
-
27
- Creative Commons Attribution-Share Alike 3.0 Germany
28
-
29
- http://creativecommons.org/licenses/by-sa/3.0/de/deed.en
30
-
31
-
32
- == Homepage
33
- http://bklippstein.github.com/perception/
34
-
35
-
36
- == Author
37
- Björn Klippstein
23
+ == More Info
24
+ * *Documentation*: {http://bklippstein.github.com/drumherum/frames.html github.com/drumherum}
25
+ * *Source* *code*: {https://github.com/bklippstein/drumherum github.com/bklippstein/drumherum}
26
+ * *License*: {http://creativecommons.org/licenses/by-sa/3.0/de/deed.en cc-by-sa Creative Commons Attribution-Share Alike 3.0 Germany}
27
+ * *Autor*: {mailto:klippstein@klippstein.com Björn Klippstein}
38
28
 
39
29
 
40
30
  == Disclaimer
@@ -1,11 +1,11 @@
1
1
  # ruby encoding: utf-8
2
- # ü
3
2
 
4
3
  require 'drumherum'
5
4
  smart_init
6
5
  require 'version'
7
- require 'rdoc/task'
6
+ require 'yard'
8
7
  require 'drumherum/rake'
8
+ YARD::Rake::YardocTask.new
9
9
 
10
10
  Drumherum.github_username = 'bklippstein'
11
11
  require 'perception'
@@ -22,68 +22,27 @@ $hoe = Hoe.spec Drumherum.project_name do
22
22
 
23
23
  developer('Bjoern Klippstein', 'klippstein@klippstein.com')
24
24
  summary = 'Beautiful and readable printouts for console and logs.'
25
- extra_deps << ['drumherum', '>= 0.1.10']
25
+ extra_deps << ['drumherum', '>= 0.1.19']
26
26
  extra_deps << ['kyanite', '>= 0.5.17']
27
27
  extra_deps << ['highline', '>= 1.6.15']
28
28
  remote_rdoc_dir = '' # Release to root only one project
29
- urls = [["http://#{Drumherum.github_username}.github.com/#{Drumherum.project_name}/"]]
29
+ urls = [[Drumherum.url_docs], [Drumherum.url_source]]
30
30
 
31
31
  end
32
32
 
33
33
 
34
34
 
35
- # ----------------------------------------------------------------------------------------------
36
- # Documentation
37
- #
38
- # http://rubeh.tumblr.com/post/27622544/rake-rdoctask-with-all-of-the-options-stubbed-out
39
- # http://www.java2s.com/Code/Ruby/Language-Basics/RDocoptionsareusedlikethisrdocoptionsnames.htm
40
- #
41
-
42
- remove_task 'docs'
43
-
44
- desc "generate RDoc documentation"
45
- Rake::RDocTask.new(:docs) do |rd|
46
-
47
- rd.title = "#{Drumherum.project_class.to_s} #{Drumherum.project_version}"
48
-
49
- rd.rdoc_dir = 'doc'
50
- rd.rdoc_files.include('lib/**/*.rb')
51
- # rd.rdoc_files.include('test/**/test_*.rb')
52
- rd.rdoc_files.include('README.txt', 'License.txt', 'History.txt' )
53
-
54
- rd.options += [
55
- '--tab-width', '4',
56
- '--main', 'README.txt',
57
- '--show-hash', # A name of the form #name in a comment is a possible hyperlink to an instance method name. When displayed, the # is removed unless this option is specified.
58
- '--line-numbers',
59
- '--all',
60
- '--charset=utf8'
61
- ]
62
-
63
- end
64
-
65
-
66
-
67
-
68
-
69
-
70
35
 
71
36
  # ----------------------------------------------------------------------------------------------
72
- # Local Tasks
37
+ # Hide Tasks
73
38
  #
39
+
40
+ hide_tasks [ :announce, :audit, :check_extra_deps, :clobber_docs, :clobber_package, :default ]
41
+ hide_tasks [ :dcov, :debug_email, :docs, :gem, :git_add, :git_commit, :git_push, :install_gem ]
42
+ hide_tasks [ :newb, :package, :post_blog, :publish_docs, :release, :release_sanity, :release_to_gemcutter ]
43
+ hide_tasks [ :repackage, :ridocs, :sleep_15, :sleep_5, :utf8, :yard, :yard_post ]
44
+
74
45
 
75
- remove_task 'ridocs'
76
- remove_task 'rdoc'
77
- remove_task 'audit'
78
- remove_task 'dcov'
79
- remove_task 'debug_email'
80
- remove_task 'debug_gem'
81
- remove_task 'deploy'
82
- remove_task 'deps:email'
83
- remove_task 'install_gem'
84
- remove_task 'multi'
85
- remove_task 'newb'
86
- #Dir['tasks/**/*.rake'].each { |t| load t }
87
46
 
88
47
 
89
48
 
@@ -6,7 +6,9 @@ if $0 == __FILE__
6
6
  require 'perception'
7
7
  end
8
8
 
9
- module Perception #:nodoc
9
+ # Some constant definitions
10
+ #
11
+ module Perception
10
12
 
11
13
  unless defined?(TIME_FORMATS)
12
14
  TIME_FORMATS = {
@@ -7,10 +7,15 @@ if $0 == __FILE__
7
7
  end
8
8
 
9
9
 
10
- module Perception #:nodoc
10
+ module Perception
11
11
  module TimeI
12
12
 
13
-
13
+
14
+ # ------------------------------------------------------------------------------
15
+ # @group Using inspect_see for to_s and pretty_print
16
+ #
17
+
18
+ # @return [String]
14
19
  def inspect_see(options={})
15
20
  norm = options[:norm] || :iso
16
21
  precision_max = 4
@@ -23,12 +28,13 @@ module Perception #:nodoc
23
28
 
24
29
 
25
30
 
26
-
31
+ # @return [String]
27
32
  def to_s
28
33
  self.inspect_see(:precision => 5)
29
34
  end
30
35
 
31
36
 
37
+ # @return [String]
32
38
  def pretty_print(q)
33
39
  q.text(self.inspect_see(:precision => 5))
34
40
  end
@@ -40,7 +46,7 @@ end # module Perception
40
46
 
41
47
 
42
48
 
43
- class Time #:nodoc:
49
+ class Time
44
50
  include Perception::TimeI
45
51
  end
46
52
 
@@ -7,29 +7,49 @@ if $0 == __FILE__
7
7
  end
8
8
 
9
9
 
10
- module Perception #:nodoc
10
+ module Perception
11
11
 
12
12
  class SeeSession
13
13
 
14
+ # @group Logging
15
+
16
+
17
+ # Looks for a good place to save the log file,
18
+ # creates log directory & log file if necessary and
19
+ # instantiates Logger Object.
20
+ #
21
+ # Where is my logfile? Try
22
+ # see seee.logger
23
+ # =>
24
+ # <Logger:0x2a57d20
25
+ # @default_formatter = #<Logger::Formatter:0x2a57cc0 @datetime_format=nil>,
26
+ # @formatter = nil,
27
+ # @level = 0,
28
+ # @logdev = #<Logger::LogDevice:0x2a57c60 @dev=#<File:C:/Ruby-Projekte/perception/log/see.log>, @filename='C:/Ruby-Projekte/perception/log/see.log', @mutex=#<<>>, @shift_age=0, @shift_size=1048576>,
29
+ # @progname = nil>
30
+ #
31
+ # @return [Logger]
32
+ #
14
33
  def logger( logdir=nil, filename='see.log' )
15
34
  return @logger if @logger
16
- require 'logger' unless defined?(Logger)
35
+ require 'logger' unless defined?(Logger)
17
36
 
18
37
  # Logfile festlegen
19
- unless logdir
20
- mycaller = CallerUtils.mycaller(:skip => ['perception', 'ruby\gems', 'ruby/gems', 'rubygems', 'test/unit'])
21
- logdir = CallerUtils.mycaller_maindir(mycaller) + '/log' if mycaller
38
+ unless logdir
39
+ smart_init if Drumherum.directory_main.empty?
40
+ logdir = File.expand_path(File.join(Drumherum.directory_main, 'log'))
41
+ # puts "logdir= #{logdir} size=#{logdir.split('/').size}"
22
42
  end
23
- if ( logdir.nil? || logdir == 'test/log' )
43
+ if ( logdir.nil? || logdir.empty? || logdir == 'test/log' || logdir.split('/').size <= 2)
24
44
  require 'tmpdir'
25
45
  logdir = Dir::tmpdir + '/log'
26
46
  end
47
+ mycaller = CallerUtils.mycaller(:skip => ['perception', 'ruby\gems', 'ruby/gems', 'test/unit'])
27
48
  logfile = File.join(logdir, filename)
28
- puts "\nmycaller=#{mycaller.inspect_pp}"
29
- puts "\nlogdir=#{logdir.inspect_pp}"
30
- puts "\nlogfile=#{logfile.inspect_pp}"
31
-
32
-
49
+ #puts "mycaller=#{mycaller.inspect_pp}"
50
+ #puts "logdir=#{logdir.inspect_pp}"
51
+ #puts "logfile=#{logfile.inspect_pp}"
52
+
33
53
  # Erzeugen, wenn nötig
34
54
  begin
35
55
  # Dir erzeugen
@@ -40,7 +60,11 @@ module Perception #:nodoc
40
60
  # File erzeugen
41
61
  unless File.exist?(logfile)
42
62
  File.open(logfile,(File::WRONLY | File::APPEND | File::CREAT))
43
- log_status("Logfile created by #{mycaller}")
63
+ if (mycaller.nil? || mycaller.empty?)
64
+ log_status
65
+ else
66
+ log_status("Logfile created by #{mycaller}")
67
+ end
44
68
  end
45
69
  #Logger erzeugen
46
70
  @logger = Logger.new( logfile )
@@ -55,7 +79,18 @@ module Perception #:nodoc
55
79
  end # def
56
80
 
57
81
 
58
-
82
+ # Prints a separator, the actual time and an optional message in the log file.
83
+ # Usage:
84
+ # seee.log_status "My Message"
85
+ # => (in log file)
86
+ #
87
+ # ------------------------------------------------------------------------------------------------------------------------
88
+ # 2012-10-17 Wednesday 10:47:05
89
+ # My Message
90
+ #
91
+ # @return [void]
92
+ # @param [String] message message to print
93
+ #
59
94
  def log_status(message='')
60
95
  status = "\n\n\n# " + ('-'*120) + "\n"
61
96
  status += "# " + Time.now.inspect_see + "\n"
@@ -8,10 +8,78 @@ end
8
8
 
9
9
 
10
10
 
11
- module Perception #:nodoc
11
+ module Perception
12
12
 
13
13
  module NumericI
14
+
15
+ # ------------------------------------------------------------------------------
16
+ # @group Slash needless digits
17
+ #
18
+
19
+ # Slash needless digits.
20
+ # Needless are digits that are
21
+ # * beyond the measurement precision or
22
+ # * not perceived by humans (instead they disturb the reception)
23
+ #
24
+ # Example:
25
+ # input (+/-) result (+) result (-) result.class
26
+ # ----------------------------------------------------------
27
+ # 12567.89 12600 -12600 Fixnum
28
+ # 1256.789 1260 -1260 Fixnum
29
+ # 123.56789 124 -124 Fixnum
30
+ # 100.01 100 -100 Fixnum
31
+ # 100.0 100 -100 Fixnum
32
+ # 99.9 99.9 -99.9 Float
33
+ # 12.0 12 -12 Fixnum
34
+ # 12 12 -12 Fixnum
35
+ # 12.56789 12.6 -12.6 Float
36
+ # 1.256789 1.26 -1.26 Float
37
+ # 1.5 1.5 -1.5 Float
38
+ # 0 0 0 Fixnum
39
+ # 0.1256789 0.126 -0.126 Float
40
+ # 0.01256789 0.0126 -0.0126 Float
41
+ # 0.001256789 0.00126 -0.00126 Float
42
+ # 0.0001256789 0.000126 -0.000126 Float
43
+ #
44
+ # @return [Numeric]
45
+ # @param [Integer] precision How many digits are significant?
46
+ def significant( precision = 3)
47
+
48
+ # sprintf mit gemischter Schreibweise
49
+ fucking_c_lib_result = sprintf("%.#{precision}g", self)
50
+ fucking_c_lib_result =~ /^(.*)e/
51
+ meine_zahl = $+ || fucking_c_lib_result
52
+ exponent = $'
53
+ # pp meine_zahl
54
+ # pp exponent
55
+
56
+ # ohne Exponent
57
+ if exponent.nil?
58
+ result = meine_zahl.to_f
59
+ if result.abs >= (10**(precision-1)) || result == result.to_i
60
+ return result.to_i
61
+ else
62
+ return result
63
+ end
64
+
65
+ # mit Exponent
66
+ else
67
+
68
+ result = meine_zahl.to_f * 10**(exponent.to_i)
69
+ if exponent[0..0] == '+'
70
+ return result.to_i
71
+
72
+ else
73
+ return result
74
+
75
+ end
76
+
77
+ end # Expontent?
78
+ end # def significant
14
79
 
80
+ # ------------------------------------------------------------------------------
81
+ # @group Easily human readable numbers
82
+ #
15
83
 
16
84
  # Formatiert eine Zahl so, dass sie leicht menschenlesbar wird:
17
85
  # - Quasi-rechtsbündig (mit dem Komma als Bezugspunkt, abhängig von der Klassenzugehörigkeit der Zahl)
@@ -76,56 +144,19 @@ module Perception #:nodoc
76
144
  end
77
145
 
78
146
 
79
- # Streicht überflüssige Stellen weg.
80
- # Wandelt in Integer um, wenn das ohne Informationsverlust möglich ist.
81
- # Überflüssig sind Stellen, die
82
- # * jenseits der Messprecision liegen oder
83
- # * nicht von Menschen wahrgenommen werden (stattdessen stören sie die Rezeption)
84
- #
85
- def significant( precision = 3)
86
-
87
- # sprintf mit gemischter Schreibweise
88
- fucking_c_lib_result = sprintf("%.#{precision}g", self)
89
- fucking_c_lib_result =~ /^(.*)e/
90
- meine_zahl = $+ || fucking_c_lib_result
91
- exponent = $'
92
- # pp meine_zahl
93
- # pp exponent
94
-
95
- # ohne Exponent
96
- if exponent.nil?
97
- result = meine_zahl.to_f
98
- if result.abs >= (10**(precision-1)) || result == result.to_i
99
- return result.to_i
100
- else
101
- return result
102
- end
103
-
104
- # mit Exponent
105
- else
106
-
107
- result = meine_zahl.to_f * 10**(exponent.to_i)
108
- if exponent[0..0] == '+'
109
- return result.to_i
110
-
111
- else
112
- return result
113
-
114
- end
115
-
116
- end # Expontent?
117
- end # def significant
147
+
118
148
 
119
149
 
120
150
  end # module NumericI
121
151
  end # module Perception
122
152
 
123
153
 
124
- class Numeric #:nodoc:
154
+ class Numeric
125
155
  include Perception::NumericI
126
156
  end
127
157
 
128
- class NilClass #:nodoc:
158
+ # @private
159
+ class NilClass
129
160
  def size(*a); 0; end
130
161
  end
131
162
 
@@ -151,11 +182,15 @@ if $0 == __FILE__ && Drumherum::loaded? then
151
182
 
152
183
  when :try1 #-------------------------------------------------------------------------------
153
184
 
185
+ seee.out << :log
154
186
  test = [12567.89, 1256.789, 123.56789, 100.01, 100.0, 99.9, 12.0, 12, 12.56789, 1.256789, 1.5, 0, 0.1256789,0.01256789,0.001256789,0.0001256789, ]
155
187
  test.each do |t|
188
+
189
+ see_print "#"
156
190
  see_print t.to_s.rjust(15)
157
191
  see_print t.significant.to_s.rjust(15)
158
192
  see_print (t * -1).significant.to_s.rjust(15)
193
+ see_print t.significant.class.to_s.rjust(15)
159
194
  see_print "\n"
160
195
  end
161
196
 
@@ -27,7 +27,7 @@ require 'kyanite/enumerable/structure' # Methode contentclass
27
27
  # printing two informations in one line without destroying the structure and
28
28
  # optionally slows down printing to readable speed, depending on the complexity of the output.
29
29
  #
30
- module Perception #:nodoc
30
+ module Perception
31
31
 
32
32
  # Eine SeeSession-Instanz entspricht einer Session mit der Konsole.
33
33
  class SeeSession
@@ -9,7 +9,7 @@ end
9
9
 
10
10
 
11
11
 
12
- module Perception #:nodoc
12
+ module Perception
13
13
 
14
14
 
15
15
  # Eine SeeSession-Instanz entspricht einer Session mit der Konsole.
@@ -7,70 +7,22 @@ if $0 == __FILE__
7
7
  end
8
8
 
9
9
 
10
-
10
+ # patches pretty print
11
11
  class PPP < PP
12
12
 
13
13
 
14
- # ------------------------------------------------------------------------------
15
- #
16
- #
17
-
18
- def self.pp(obj, out=$>, width=79 )
19
- q = PPP.new(out, width, "\n")
20
- q.guard_inspect_key {q.pp(obj)}
21
- q.flush
22
- #$pp = q
23
- out
24
- end
25
-
26
- # sorgt dafür, dass Listen länger als 3 Elemente untereinander ausgegeben werden
27
- def seplist(list, sep=nil, iter_method=:each) # :yield: element
28
- sep = lambda { comma_newline } if (sep.kind_of?(Integer) && list.size > sep )
29
- sep = lambda { comma_breakable } if (sep.nil? || sep.kind_of?(Integer))
30
- first = true
31
- list.__send__(iter_method) {|*v|
32
- if first
33
- first = false
34
- else
35
- sep.call
36
- end
37
- yield(*v)
38
- }
39
- end
40
-
41
- def comma_newline
42
- text ","
43
- breakable('',9999)
44
- end
45
-
46
-
47
- # Hashes mit mehr als drei Keys werden untereinander dargestellt
48
- def pp_hash(obj)
49
- group(1, '{', '}') {
50
- seplist(obj, 3, :each_pair) {|k, v|
51
- group {
52
- pp k
53
- text '=>'
54
- group(1) {
55
- breakable ''
56
- pp v
57
- }
58
- }
59
- }
60
- }
61
- end
62
-
63
14
 
64
15
 
16
+
65
17
 
66
18
  # ------------------------------------------------------------------------------
67
- #
68
- #
69
-
70
-
19
+ # @group Beautify: reworking the pretty print results
20
+ #
71
21
 
72
22
 
73
- # Nachbearbeitung des PrettyPrint-Results
23
+ # reworking the pretty print results
24
+ # @return [String]
25
+ #
74
26
  def self.beautify(string)
75
27
  begin
76
28
  result = string# .gsub!("`","'")
@@ -88,7 +40,9 @@ class PPP < PP
88
40
  end # def
89
41
 
90
42
 
91
- # Klassifiziert die Struktur eines Objektes für die Ausgabe
43
+ # Classifies the structure of an object for output
44
+ # @return [Symbol]
45
+ #
92
46
  def self.classify_structure(object)
93
47
 
94
48
  # Hash
@@ -111,8 +65,10 @@ class PPP < PP
111
65
 
112
66
 
113
67
 
114
- # Level 2+ : nur noch eine Zeile
115
- # Level 3+ : komplexe Objekte zusammenkürzen
68
+ # Level 2+ : only one line left
69
+ # Level 3+ : clip complex objects
70
+ # @return [String]
71
+ #
116
72
  def self.beautify_focus_level1(string)
117
73
  #return string
118
74
  replaces = [[/\n/, ''], [/ {2,}/,' ']]
@@ -124,7 +80,9 @@ class PPP < PP
124
80
 
125
81
 
126
82
 
127
- # Object
83
+ # Beautify for Objects
84
+ # @return [String]
85
+ #
128
86
  def self.beautify_object(string)
129
87
  result = string
130
88
  result.gsub!(/= *\n */m, '=' ) # unnötigen Zeilenumbruch vermeiden
@@ -154,7 +112,9 @@ class PPP < PP
154
112
 
155
113
 
156
114
 
157
- # Hash
115
+ # Beautify for Hashes
116
+ # @return [String]
117
+ #
158
118
  def self.beautify_hash(string)
159
119
  result = string
160
120
  result.gsub!(/=> *\n */m, '=>' ) # unnötigen Zeilenumbruch vermeiden
@@ -219,9 +179,11 @@ class PPP < PP
219
179
  end
220
180
 
221
181
 
222
-
223
- # Eindimensionales Array
224
- # oder Objekt, das sich wie ein Array ausdruckt -- vor der eckigen Klammer ist ein Identifier erlaubt, z.B. WP[ 1, 2, 3]
182
+ # Beautify for one-dimensional arrays
183
+ # or any object that prints like an array.
184
+ # In front of the brackets there are identifier allowed, eg WP [1, 2, 3]
185
+ # @return [String]
186
+ #
225
187
  def self.beautify_array_1dim(string)
226
188
  return string
227
189
  # tabstops = result[1..-2].analyze_columns( :level_start => 0,
@@ -240,9 +202,10 @@ class PPP < PP
240
202
  end
241
203
 
242
204
 
243
-
244
- # Zweidimensionales Array
245
- # very hackish
205
+ # Beautify for two-dimensional arrays -
206
+ # very dirty.
207
+ # @return [String]
208
+ #
246
209
  def self.beautify_array_2dim(string)
247
210
  result = string
248
211
 
@@ -296,9 +259,15 @@ class PPP < PP
296
259
  end
297
260
 
298
261
 
262
+
263
+
264
+ # Beautify for complex objects.
265
+ #
299
266
  # Mehrere Ausgaben in einer Zeile.
300
267
  # Die einzelnen Ausgaben liegen als Array vor.
301
268
  # Das Ergebnis soll aber nicht wie ein Array ausssehen.
269
+ # @return [String]
270
+ #
302
271
  def self.beautify_multi(string)
303
272
  result = string
304
273
  result = beautify_focus_level1(result)
@@ -320,20 +289,78 @@ class PPP < PP
320
289
 
321
290
 
322
291
 
292
+ # ------------------------------------------------------------------------------
293
+ # @group Pretty Print Patches
294
+ #
295
+
296
+
297
+ def self.pp(obj, out=$>, width=79 )
298
+ q = PPP.new(out, width, "\n")
299
+ q.guard_inspect_key {q.pp(obj)}
300
+ q.flush
301
+ #$pp = q
302
+ out
303
+ end
304
+
305
+
306
+
307
+ # ensures that lists with more than three elements are displayed line by line
308
+ def seplist(list, sep=nil, iter_method=:each) # :yield: element
309
+ sep = lambda { comma_newline } if (sep.kind_of?(Integer) && list.size > sep )
310
+ sep = lambda { comma_breakable } if (sep.nil? || sep.kind_of?(Integer))
311
+ first = true
312
+ list.__send__(iter_method) {|*v|
313
+ if first
314
+ first = false
315
+ else
316
+ sep.call
317
+ end
318
+ yield(*v)
319
+ }
320
+ end
321
+
322
+
323
+ def comma_newline
324
+ text ","
325
+ breakable('',9999)
326
+ end
327
+
328
+
323
329
 
330
+ # hashes with more than three keys are displayed line by line
331
+ def pp_hash(obj)
332
+ group(1, '{', '}') {
333
+ seplist(obj, 3, :each_pair) {|k, v|
334
+ group {
335
+ pp k
336
+ text '=>'
337
+ group(1) {
338
+ breakable ''
339
+ pp v
340
+ }
341
+ }
342
+ }
343
+ }
344
+ end
324
345
 
325
346
 
326
347
 
327
348
  end # class
328
349
 
329
350
 
330
- class String # :nodoc:
351
+ class String
352
+
353
+ # @return [String]
331
354
  def pretty_print(q)
332
355
  q.text "'#{self}'"
333
356
  end
357
+
334
358
  end
335
359
 
336
- class Set # :nodoc:
360
+
361
+ class Set
362
+
363
+ # @return [String]
337
364
  def pretty_print(q)
338
365
  q.group(1, '{', '}') {
339
366
  q.seplist(self) {|v|
@@ -342,13 +369,17 @@ class Set # :nodoc:
342
369
  }
343
370
  end
344
371
 
372
+
345
373
  def pretty_print_cycle(q)
346
374
  q.text(empty? ? '{}' : '{...}')
347
375
  end
376
+
348
377
  end
349
378
 
350
379
 
351
- class Dictionary # :nodoc:
380
+ class Dictionary
381
+
382
+ # @return [String]
352
383
  def inspect
353
384
  ary = []
354
385
  each {|k,v| ary << k.inspect + "=>" + v.inspect}
@@ -357,7 +388,9 @@ class Dictionary # :nodoc:
357
388
  end
358
389
 
359
390
 
360
- class Dictionary # :nodoc:
391
+ class Dictionary
392
+
393
+ # @return [String]
361
394
  def pretty_print(q)
362
395
  q.pp_hash self
363
396
  end
@@ -8,8 +8,8 @@ end
8
8
  require 'kyanite/array_of_enumerables'
9
9
 
10
10
 
11
- module Perception #:nodoc
12
- module StringSpreadI #:nodoc
11
+ module Perception
12
+ module StringSpreadI
13
13
 
14
14
 
15
15
  def analyze_columns(options={})
@@ -129,7 +129,7 @@ module Perception #:nodoc
129
129
  end # module
130
130
  end # module
131
131
 
132
- class String #:nodoc:
132
+ class String
133
133
  include Perception::StringSpreadI
134
134
  end
135
135
 
data/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
3
  module Perception #:nodoc
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.4'
5
5
  end
6
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perception
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-15 00:00:00.000000000 Z
12
+ date: 2012-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: drumherum
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.1.10
21
+ version: 0.1.19
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.1.10
29
+ version: 0.1.19
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: kyanite
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -97,17 +97,17 @@ email:
97
97
  executables: []
98
98
  extensions: []
99
99
  extra_rdoc_files:
100
- - History.txt
101
- - License.txt
100
+ - History.rdoc
101
+ - License.rdoc
102
102
  - Manifest.txt
103
- - README.txt
103
+ - README.rdoc
104
104
  files:
105
105
  - console.rb
106
- - History.txt
107
- - License.txt
106
+ - History.rdoc
107
+ - License.rdoc
108
108
  - Manifest.txt
109
109
  - Rakefile.rb
110
- - README.txt
110
+ - README.rdoc
111
111
  - version.rb
112
112
  - demo/demo_pp.rb
113
113
  - demo/demo_system_info.rb
@@ -128,12 +128,12 @@ files:
128
128
  - test/test_numeric.rb
129
129
  - test/test_ppp.rb
130
130
  - .gemtest
131
- homepage:
131
+ homepage: http://bklippstein.github.com/perception/frames.html
132
132
  licenses: []
133
133
  post_install_message:
134
134
  rdoc_options:
135
135
  - --main
136
- - README.txt
136
+ - README.rdoc
137
137
  require_paths:
138
138
  - lib
139
139
  required_ruby_version: !ruby/object:Gem::Requirement