perception 0.1.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gemtest ADDED
File without changes
data/History.txt CHANGED
@@ -1,8 +1,12 @@
1
1
 
2
- == 0.1.6 2008-12-10
2
+ == 0.3.0 2012-10-08
3
+ * now works with Ruby 1.9.x
4
+
5
+ == 0.2.0 2008-12-10
6
+ * improved documentation
3
7
 
8
+ == 0.1.6 2008-12-10
4
9
  * first public release
5
10
 
6
11
  == 0.0.1 2008-08-01
7
-
8
12
  * Initial release
data/License.txt CHANGED
@@ -1,16 +1,10 @@
1
- LICENSE: GNU General Public License (GPL)
2
- Autor: Bjoern Klippstein
3
1
 
4
- Permission is hereby granted, free of charge, to any person obtaining
5
- a copy of this software and associated documentation files (the
6
- "Software"), to deal in the Software without restriction, including
7
- without limitation the rights to use, copy, modify, merge, publish,
8
- distribute, sublicense, and/or sell copies of the Software, and to
9
- permit persons to whom the Software is furnished to do so, subject to
10
- the following conditions:
2
+ == License
3
+ Creative Commons Attribution-Share Alike 3.0 Germany
11
4
 
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
5
+ (cc-by-sa) http://creativecommons.org/licenses/by-sa/3.0/de/deed.en
6
+
7
+ AUTOR: Björn Klippstein
14
8
 
15
9
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
10
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
data/Manifest.txt CHANGED
@@ -1,27 +1,24 @@
1
- lib/perception.rb
2
- lib/perception/const.rb
3
- lib/perception/date_and_time.rb
4
- lib/perception/logging.rb
5
- lib/perception/numeric.rb
6
- lib/perception/perception_main.rb
7
- lib/perception/perception_private.rb
8
- lib/perception/ppp.rb
9
- lib/perception/string_spread.rb
10
- lib/perception/test.rb
11
- History.txt
12
- init.rb
13
- License.txt
14
- Manifest.txt
15
- Rakefile.rb
16
- README.txt
17
- website/index.html
18
- website/index.txt
19
- website/javascripts/rounded_corners_lite.inc.js
20
- website/stylesheets/screen.css
21
- website/template.html.erb
22
- demo/demo_pp.rb
23
- demo/demo_zz.rb
24
- test/_start_all.rb
25
- test/test_date_and_time.rb
26
- test/test_numeric.rb
27
- test/test_ppp.rb
1
+ History.txt
2
+ License.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile.rb
6
+ demo/demo_pp.rb
7
+ demo/demo_system_info.rb
8
+ demo/demo_zz.rb
9
+ init.rb
10
+ lib/perception.rb
11
+ lib/perception/const.rb
12
+ lib/perception/date_and_time.rb
13
+ lib/perception/logging.rb
14
+ lib/perception/numeric.rb
15
+ lib/perception/perception_main.rb
16
+ lib/perception/perception_private.rb
17
+ lib/perception/ppp.rb
18
+ lib/perception/string_spread.rb
19
+ profile.rb
20
+ script/console.rb
21
+ test/_start_all.rb
22
+ test/test_date_and_time.rb
23
+ test/test_numeric.rb
24
+ test/test_ppp.rb
data/README.txt CHANGED
@@ -1,55 +1,48 @@
1
- = Perception
1
+ # ruby encoding: utf-8
2
2
 
3
- http://perception.rubyforge.org/
3
+ = Perception - Readable Printouts For Logs And Console
4
4
 
5
- == DESCRIPTION:
5
+ http://bklippstein.github.com/perception/
6
6
 
7
- Perception - Beautiful printouts for humans
8
7
  Perception is a intuitive toolkit for simple everyday debugging.
9
8
  It offers a powerfull replacement for print, puts and pp.
10
9
 
11
10
  You get auto-intended and structured output on your console without any configuration.
12
- Perception also offers temporary printouts (overwritten by the next print),
13
- printing two informations in one line without destroying the structure
14
- and optionally slows down printing to readable speed, depending on the complexity of the output.
15
11
 
12
+ Perception also offers temporary printouts (overwritten by the next print). So you can print
13
+ two informations in one place without destroying the structure.
16
14
 
17
- == FEATURES/PROBLEMS:
15
+ Perception optionally slows down printing to readable speed, depending on the complexity of the output.
18
16
 
19
- * FIX (list of features or problems)
20
17
 
21
- == SYNOPSIS:
22
18
 
23
- FIX (code sample of usage)
19
+ == Usage
20
+ require 'perception'
21
+ use +see+ instead of pp, puts, print.
22
+ [] There are demos included. Run them.
24
23
 
25
- == REQUIREMENTS:
26
24
 
27
- * FIX (list of requirements)
25
+ == License
26
+ cc-by-sa
28
27
 
29
- == INSTALL:
28
+ Creative Commons Attribution-Share Alike 3.0 Germany
30
29
 
31
- * FIX (sudo gem install, anything else)
30
+ http://creativecommons.org/licenses/by-sa/3.0/de/deed.en
32
31
 
33
- == LICENSE:
34
32
 
35
- GNU General Public License (GPL)
33
+ == Homepage
34
+ http://bklippstein.github.com/perception/
36
35
 
37
36
 
38
- Permission is hereby granted, free of charge, to any person obtaining
39
- a copy of this software and associated documentation files (the
40
- 'Software'), to deal in the Software without restriction, including
41
- without limitation the rights to use, copy, modify, merge, publish,
42
- distribute, sublicense, and/or sell copies of the Software, and to
43
- permit persons to whom the Software is furnished to do so, subject to
44
- the following conditions:
37
+ == Author
38
+ Björn Klippstein
45
39
 
46
- The above copyright notice and this permission notice shall be
47
- included in all copies or substantial portions of the Software.
48
40
 
49
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
41
+ == Disclaimer
42
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
50
43
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
51
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
52
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
53
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
54
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
55
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
45
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
46
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
47
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
48
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile.rb CHANGED
@@ -1,96 +1,102 @@
1
+ # ruby encoding: utf-8
2
+ # ü
3
+
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'kyanite/hoe'
7
+ Kyanite.projectname = File.dirname(__FILE__).split("/")[-1].strip # Name des Projekt-Stammverzeichnisses
8
+ Kyanite.github_username = 'bklippstein'
9
+ require 'rdoc/task'
10
+ require 'kyanite/rake'
11
+
12
+ require 'perception'
13
+
14
+ # puts Kyanite.github_username
15
+ # puts Kyanite.projectname
16
+ # puts Hoe.class
1
17
 
2
18
  # ----------------------------------------------------------------------------------------------
3
- # NewGem
19
+ # Hoe
4
20
  #
21
+ # http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
22
+ #
23
+ $hoe = Hoe.spec Kyanite.projectname do
24
+
25
+ # self.rubyforge_name = 'yourgemx' # if different than 'yourgem'
26
+
27
+ developer('Bjoern Klippstein', 'klippstein@klippstein.com')
28
+ summary = 'Beautiful and readable printouts for console and logs.'
29
+ extra_deps << ['kyanite', '>= 0.5.17']
30
+ extra_deps << ['highline', '>= 1.6.15']
31
+ remote_rdoc_dir = '' # Release to root only one project
32
+ urls = [["http://#{Kyanite.github_username}.github.com/#{Kyanite.projectname}/"]]
33
+
34
+ end
35
+
5
36
 
6
- %w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
7
- require File.dirname(__FILE__) + '/lib/perception'
8
-
9
- # Generate all the Rake tasks
10
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
11
- $hoe = Hoe.new('perception', Perception::VERSION) do |p|
12
-
13
- p.author = 'Bjoern Klippstein'
14
- p.email = 'bjoernklippstein@gmail.com'
15
- p.url = 'http://rapidrubyonrails.de'
16
-
17
- p.rubyforge_name = p.name
18
- p.summary = 'Beautiful and readable printouts for console and logs.'
19
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
20
-
21
- p.extra_deps = [ ['kyanite', '>= 0.3.1'] ]
22
- p.extra_dev_deps = [ ['newgem', ">= #{::Newgem::VERSION}"] ]
23
-
24
- p.clean_globs |= %w[**/.DS_Store tmp *.log]
25
- path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
26
- # p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
27
- p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), '')
28
- p.rsync_args = '-av --delete --ignore-errors'
37
+
38
+ # ----------------------------------------------------------------------------------------------
39
+ # Documentation
40
+ #
41
+ # http://rubeh.tumblr.com/post/27622544/rake-rdoctask-with-all-of-the-options-stubbed-out
42
+ # http://www.java2s.com/Code/Ruby/Language-Basics/RDocoptionsareusedlikethisrdocoptionsnames.htm
43
+ #
44
+
45
+ remove_task 'docs'
46
+
47
+ desc "generate RDoc documentation"
48
+ Rake::RDocTask.new(:docs) do |rd|
49
+
50
+ rd.title = "#{Kyanite.projectname.capitalize} #{Kyanite.projectname.to_class.const_get('VERSION')}"
51
+
52
+ rd.rdoc_dir = 'doc'
53
+ rd.rdoc_files.include('lib/**/*.rb')
54
+ # rd.rdoc_files.include('test/**/test_*.rb')
55
+ rd.rdoc_files.include('README.txt', 'License.txt', 'History.txt' )
56
+
57
+ rd.options += [
58
+ '--tab-width', '4',
59
+ '--main', 'README.txt',
60
+ '--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.
61
+ '--line-numbers',
62
+ '--all',
63
+ '--charset=utf8'
64
+ ]
65
+
29
66
  end
30
67
 
31
- require 'newgem/tasks' # load /tasks/*.rake
32
- Dir['tasks/**/*.rake'].each { |t| load t }
68
+
69
+
33
70
 
34
71
 
35
72
 
36
73
 
37
74
  # ----------------------------------------------------------------------------------------------
38
- # Patch Hoe
75
+ # Local Tasks
39
76
  #
40
77
 
41
- # Task :release korrigieren
42
- # no explicit version needed
43
- #
44
- remove_task :release
45
- desc 'Package and upload the actual version to rubyforge.'
46
- task :release => [:clean, :package] do |t|
47
- pkg = "pkg/#{$hoe.name}-#{Perception::VERSION}"
48
- rf = RubyForge.new.configure
49
- puts "Logging in"
50
- rf.login
51
- c = rf.userconfig
52
- c["release_notes"] = $hoe.description if $hoe.description
53
- c["release_changes"] = $hoe.changes if $hoe.changes
54
- c["preformatted"] = true
55
-
56
- files = ["#{pkg}.tgz", "#{pkg}.gem"].compact
57
- puts "Releasing #{$hoe.name} #{Perception::VERSION}"
58
- rf.add_release $hoe.rubyforge_name, $hoe.name, Perception::VERSION, *files
59
- end
60
-
61
-
62
-
63
- # Task :publish_docs korrigieren
64
- #
65
- remove_task :publish_docs
66
- desc 'Publish RDoc to RubyForge.'
67
- task :publish_docs => [:clean, :docs] do
68
- #task :publish_docs do
69
- config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
70
- host = "#{config["username"]}@rubyforge.org"
71
- remote_dir = "/var/www/gforge-projects/#{$hoe.rubyforge_name}"
72
- local_dir = 'doc'
73
- sh %{rsync #{$hoe.rsync_args} #{local_dir}/ #{host}:#{remote_dir}}
74
- end
78
+ remove_task 'ridocs'
79
+ remove_task 'rdoc'
80
+ remove_task 'audit'
81
+ remove_task 'dcov'
82
+ remove_task 'debug_email'
83
+ remove_task 'debug_gem'
84
+ remove_task 'deploy'
85
+ remove_task 'deps:email'
86
+ remove_task 'install_gem'
87
+ remove_task 'multi'
88
+ remove_task 'newb'
89
+ #Dir['tasks/**/*.rake'].each { |t| load t }
90
+
91
+
92
+
75
93
 
76
94
 
77
95
 
78
- # TODO - want other tests/tasks run by default? Add them to the list
79
- # task :default => [:spec, :features]
80
96
 
81
97
 
82
98
 
83
- # ----------------------------------------------------------------------------------------------
84
- # Kyanite
85
- #
86
99
 
87
- $rake_tasks_ausblenden = %w{ bundles:tm deps:email deps:fetch deps:list manifest manifest:refresh
88
- announce clobber clobber_docs clobber_package clobber_rdoc
89
- config_hoe deploy
90
- install_gem_no_doc
91
- local_deploy package post_blog post_news ridocs test_deps
92
- clobber_docs clobber_rdoc rdoc redocs rerdoc}
93
- require 'kyanite/rake'
94
100
 
95
101
 
96
102
 
@@ -98,29 +104,6 @@ require 'kyanite/rake'
98
104
 
99
105
 
100
106
 
101
- # ----------------------------------------------------------------------------------------------
102
- # Documentation
103
- #
104
- # http://github.com/mislav/hanna/tree/master
105
-
106
- # instead of 'rake/rdoctask':
107
- require 'hanna/rdoctask'
108
-
109
- desc 'Generate RDoc documentation for Perception'
110
- Rake::RDocTask.new do |rdoc|
111
- rdoc.rdoc_dir = 'doc'
112
- rdoc.title = "Perception - #{$hoe.summary}"
113
- rdoc.rdoc_files.include('README.txt', 'License.txt')
114
- rdoc.rdoc_files.include('lib/**/*.rb')
115
- rdoc.rdoc_files.include('test/**/test_*.rb')
116
- #rdoc.rdoc_files.exclude('lib/perception/array/array2')
117
-
118
- rdoc.options += [
119
- '-SNap',
120
- '-w4',
121
- '--charset=utf8',
122
- ]
123
- end
124
107
 
125
108
 
126
109
 
data/demo/demo_pp.rb CHANGED
@@ -1,4 +1,5 @@
1
-
1
+ # ruby encoding: utf-8
2
+ # ü
2
3
  if $0 == __FILE__
3
4
  require File.join(File.dirname(__FILE__), '..', 'lib', 'perception' )
4
5
  else
@@ -29,7 +30,7 @@ module Perception #:nodoc
29
30
  see "=================="
30
31
  end
31
32
  see
32
- #wait_for_key('Press any key to start')
33
+ # wait_for_key('Press any key to start')
33
34
 
34
35
 
35
36
  end # def
@@ -107,7 +108,7 @@ module Perception #:nodoc
107
108
 
108
109
 
109
110
  def demo_see_pp_dictionary
110
- require 'facets/dictionary'
111
+ require 'hashery' # old: 'facets/dictionary'
111
112
 
112
113
  @dictionary = Dictionary.new
113
114
  @dictionary[:a_dictionary] = true
@@ -132,10 +133,10 @@ module Perception #:nodoc
132
133
  Perception::DemoSee.new('PrettyPrint Array').demo_see_pp_array
133
134
  Perception::DemoSee.new('PrettyPrint Object').demo_see_pp_object
134
135
  Perception::DemoSee.new('PrettyPrint Hash').demo_see_pp_hash
135
- #Perception::DemoSee.new('PrettyPrint Dictionary').demo_see_pp_dictionary
136
+ Perception::DemoSee.new('PrettyPrint Dictionary').demo_see_pp_dictionary
136
137
 
137
138
 
138
- #Perception::DemoSee.new('PrettyPrint div').demo_see_basic_types
139
+ Perception::DemoSee.new('PrettyPrint div').demo_see_basic_types
139
140
 
140
141
  end
141
142
 
@@ -0,0 +1,28 @@
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'perception' )
5
+ else
6
+ require 'perception'
7
+ end
8
+
9
+ require 'rbconfig'
10
+ seee.out << :log
11
+ see Config::CONFIG
12
+ see
13
+ see
14
+ see "------------------------------------------------------"
15
+
16
+ # require 'awesome_print'
17
+ # ap Config::CONFIG
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
data/demo/demo_zz.rb CHANGED
@@ -1,4 +1,5 @@
1
-
1
+ # ruby encoding: utf-8
2
+ # ü
2
3
  if $0 == __FILE__
3
4
  require File.join(File.dirname(__FILE__), '..', 'lib', 'perception' )
4
5
  else
data/init.rb CHANGED
File without changes
@@ -1,5 +1,10 @@
1
-
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
3
8
 
4
9
  module Perception #:nodoc
5
10
 
@@ -1,5 +1,10 @@
1
-
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
3
8
 
4
9
 
5
10
  module Perception #:nodoc
@@ -1,5 +1,10 @@
1
-
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
3
8
 
4
9
 
5
10
  module Perception #:nodoc
@@ -1,5 +1,12 @@
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
8
+
1
9
 
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
3
10
 
4
11
  module Perception #:nodoc
5
12
 
@@ -1,5 +1,10 @@
1
-
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
3
8
 
4
9
  require 'kyanite/array/array'
5
10
  require 'kyanite/enumerable/structure' # Methode contentclass
@@ -1,5 +1,13 @@
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
8
+
9
+
1
10
 
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
3
11
 
4
12
  module Perception #:nodoc
5
13
 
@@ -1,5 +1,12 @@
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
8
+
1
9
 
2
- require File.join(File.dirname(__FILE__), '..', 'perception' ) if $0 == __FILE__
3
10
 
4
11
  class PPP < PP
5
12
 
@@ -320,13 +327,13 @@ class PPP < PP
320
327
  end # class
321
328
 
322
329
 
323
- class String
330
+ class String # :nodoc:
324
331
  def pretty_print(q)
325
332
  q.text "'#{self}'"
326
333
  end
327
334
  end
328
335
 
329
- class Set
336
+ class Set # :nodoc:
330
337
  def pretty_print(q)
331
338
  q.group(1, '{', '}') {
332
339
  q.seplist(self) {|v|
@@ -341,7 +348,7 @@ class Set
341
348
  end
342
349
 
343
350
 
344
- class Dictionary
351
+ class Dictionary # :nodoc:
345
352
  def inspect
346
353
  ary = []
347
354
  each {|k,v| ary << k.inspect + "=>" + v.inspect}
@@ -350,7 +357,7 @@ class Dictionary
350
357
  end
351
358
 
352
359
 
353
- class Dictionary
360
+ class Dictionary # :nodoc:
354
361
  def pretty_print(q)
355
362
  q.pp_hash self
356
363
  end
@@ -1,5 +1,10 @@
1
-
2
- require 'perception' if $0 == __FILE__
1
+ # ruby encoding: utf-8
2
+ # ü
3
+ if $0 == __FILE__
4
+ require 'kyanite/smart_load_path'
5
+ smart_load_path
6
+ require 'perception'
7
+ end
3
8
  require 'kyanite/array_of_enumerables'
4
9
 
5
10
 
data/lib/perception.rb CHANGED
@@ -1,21 +1,18 @@
1
-
1
+ # ruby encoding: utf-8
2
+ # ü
2
3
  if $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
- # puts 'Path schon aktuell'
4
+ #puts 'Path schon aktuell'
4
5
  else
5
6
  $:.unshift(File.dirname(__FILE__))
6
7
  end
7
8
 
8
9
 
9
- # Die Versionsnummer steht ausserdem
10
- # * im Script '2_rake_install_gem.bat'
11
- # * ggf. in der gem-Verkn�pfung
12
- module Perception
13
- VERSION = '0.1.6'
14
- end
15
10
 
11
+ module Perception #:nodoc
12
+ VERSION = '0.3.0'
13
+ end
16
14
 
17
15
 
18
- $KCODE = 'UTF8'
19
16
  require 'pp'
20
17
  require 'set'
21
18
  require 'kyanite/string/mgsub'
@@ -28,7 +25,7 @@ require 'perception/const'
28
25
  require 'perception/perception_private'
29
26
  require 'perception/perception_main'
30
27
  require 'perception/ppp'
31
- require 'perception/test'
28
+ #require 'perception/test'
32
29
  require 'perception/string_spread'
33
30
  require 'perception/numeric'
34
31
  require 'perception/date_and_time'