kyanite 0.4.0 → 0.5.0

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 (105) hide show
  1. data/.gemtest +0 -0
  2. data/0_rake_test.bat +2 -1
  3. data/1_rake_install_gem.bat +1 -1
  4. data/4_ruby_script_console.bat +2 -1
  5. data/Div +0 -0
  6. data/History.txt +2 -0
  7. data/License.txt +0 -0
  8. data/Manifest.txt +2 -14
  9. data/README.txt +4 -0
  10. data/Rakefile.rb +32 -30
  11. data/init.rb +0 -0
  12. data/lib/kyanite.rb +3 -3
  13. data/lib/kyanite/array.rb +0 -0
  14. data/lib/kyanite/array/array.rb +5 -31
  15. data/lib/kyanite/array/array2.rb +0 -0
  16. data/lib/kyanite/array/matrix2.rb +0 -0
  17. data/lib/kyanite/array_of_enumerables.rb +0 -0
  18. data/lib/kyanite/array_of_numerics.rb +0 -0
  19. data/lib/kyanite/array_of_strings.rb +0 -0
  20. data/lib/kyanite/basics.rb +0 -0
  21. data/lib/kyanite/dictionary.rb +2 -3
  22. data/lib/kyanite/enumerable.rb +0 -0
  23. data/lib/kyanite/enumerable/enumerable_enumerables.rb +1 -0
  24. data/lib/kyanite/enumerable/enumerable_numerics.rb +1 -1
  25. data/lib/kyanite/enumerable/enumerable_strings.rb +1 -0
  26. data/lib/kyanite/enumerable/structure.rb +5 -1
  27. data/lib/kyanite/general.rb +0 -0
  28. data/lib/kyanite/general/callerutils.rb +0 -0
  29. data/lib/kyanite/general/classutils.rb +4 -4
  30. data/lib/kyanite/general/kernel.rb +9 -12
  31. data/lib/kyanite/general/nil.rb +3 -1
  32. data/lib/kyanite/general/object.rb +2 -5
  33. data/lib/kyanite/general/true_false.rb +0 -0
  34. data/lib/kyanite/general/undoable.rb +0 -0
  35. data/lib/kyanite/hash.rb +8 -13
  36. data/lib/kyanite/matrix2.rb +0 -0
  37. data/lib/kyanite/nil.rb +0 -0
  38. data/lib/kyanite/numeric.rb +0 -0
  39. data/lib/kyanite/numeric/float.rb +0 -0
  40. data/lib/kyanite/numeric/integer.rb +0 -0
  41. data/lib/kyanite/numeric/numeric.rb +0 -0
  42. data/lib/kyanite/operation.rb +0 -0
  43. data/lib/kyanite/operation/call_tracker.rb +0 -0
  44. data/lib/kyanite/operation/rake.rb +0 -0
  45. data/lib/kyanite/operation/regexp.rb +0 -0
  46. data/lib/kyanite/operation/unit_test.rb +2 -5
  47. data/lib/kyanite/optimizer.rb +0 -1
  48. data/lib/kyanite/rake.rb +0 -0
  49. data/lib/kyanite/range.rb +0 -0
  50. data/lib/kyanite/set.rb +0 -1
  51. data/lib/kyanite/string.rb +1 -1
  52. data/lib/kyanite/string/cast.rb +0 -0
  53. data/lib/kyanite/string/chars.rb +24 -28
  54. data/lib/kyanite/string/chars_const.rb +12 -12
  55. data/lib/kyanite/string/diff.rb +0 -0
  56. data/lib/kyanite/string/div.rb +0 -0
  57. data/lib/kyanite/string/include.rb +0 -0
  58. data/lib/kyanite/string/list.rb +0 -0
  59. data/lib/kyanite/string/nested.rb +0 -0
  60. data/lib/kyanite/string/random.rb +1 -0
  61. data/lib/kyanite/string/split.rb +0 -0
  62. data/lib/kyanite/symbol.rb +0 -0
  63. data/lib/kyanite/tree.rb +51 -16
  64. data/lib/kyanite/undoable.rb +0 -0
  65. data/lib/kyanite/unit_test.rb +0 -0
  66. data/script/{console → console.rb} +0 -0
  67. data/smart_load_path.rb +6 -0
  68. data/test/_start_all.rb +3 -0
  69. data/test/array/test_array.rb +2 -9
  70. data/test/array/test_matrix2.rb +1 -5
  71. data/test/enumerable/test_enumerable_enumerables.rb +1 -4
  72. data/test/enumerable/test_enumerable_numerics.rb +35 -38
  73. data/test/enumerable/test_enumerable_strings.rb +1 -4
  74. data/test/enumerable/test_structure.rb +1 -4
  75. data/test/general/test_classutils.rb +1 -4
  76. data/test/general/test_nil.rb +1 -4
  77. data/test/general/test_object.rb +1 -3
  78. data/test/general/test_true_false.rb +1 -4
  79. data/test/numeric/test_numeric_integer.rb +1 -3
  80. data/test/string/test_cast.rb +2 -4
  81. data/test/string/test_chars.rb +19 -20
  82. data/test/string/test_diff.rb +2 -4
  83. data/test/string/test_list.rb +3 -4
  84. data/test/string/test_nested.rb +2 -4
  85. data/test/string/test_split.rb +2 -4
  86. data/test/test_dictionary.rb +2 -3
  87. data/test/test_hash.rb +2 -3
  88. data/test/test_optimizer.rb +2 -3
  89. data/test/test_range.rb +2 -3
  90. data/test/test_set.rb +17 -16
  91. data/test/test_tree.rb +9 -7
  92. metadata +105 -89
  93. data/config/website.yml +0 -2
  94. data/lib/kyanite/smart_load_path.rb +0 -2
  95. data/lib/kyanite/string/mgsub.rb +0 -39
  96. data/script/console.cmd +0 -1
  97. data/script/destroy +0 -14
  98. data/script/destroy.cmd +0 -1
  99. data/script/generate +0 -14
  100. data/script/generate.cmd +0 -1
  101. data/script/txt2html +0 -82
  102. data/script/txt2html.cmd +0 -1
  103. data/tasks/deployment.rake +0 -92
  104. data/tasks/documentation.rake +0 -28
  105. data/tasks/environment.rake +0 -7
data/.gemtest ADDED
File without changes
data/0_rake_test.bat CHANGED
@@ -4,7 +4,8 @@
4
4
  set RUBYOPT=-rubygems
5
5
  echo.
6
6
 
7
- ruby test/_start_all.rb
7
+ cd test
8
+ ruby _start_all.rb
8
9
 
9
10
  echo.
10
11
  echo.
@@ -1,6 +1,6 @@
1
1
 
2
2
  @echo off
3
- set MYDIR=F:\R\_Eigene_Projekte_unter_SVN\kyanite
3
+ set MYDIR=C:\Ruby-Projekte\kyanite
4
4
  @cmd /C chcp 1252 > NUL
5
5
  set RUBYOPT=-rubygems
6
6
  echo.
@@ -4,7 +4,8 @@
4
4
  set RUBYOPT=-rubygems
5
5
  echo.
6
6
 
7
- ruby script/console
7
+ cd script
8
+ ruby console.rb
8
9
 
9
10
  echo.
10
11
  echo.
data/Div CHANGED
File without changes
data/History.txt CHANGED
@@ -1,3 +1,5 @@
1
+ == 0.5.0 2012-10-07
2
+ * now works with Ruby 1.9.x
1
3
 
2
4
  == 0.4.0 2008-12-10
3
5
  * improved documentation
data/License.txt CHANGED
File without changes
data/Manifest.txt CHANGED
@@ -8,8 +8,8 @@ License.txt
8
8
  Manifest.txt
9
9
  README.txt
10
10
  Rakefile.rb
11
- config/website.yml
12
11
  init.rb
12
+ smart_load_path.rb
13
13
  lib/kyanite.rb
14
14
  lib/kyanite/array.rb
15
15
  lib/kyanite/array/array.rb
@@ -49,7 +49,6 @@ lib/kyanite/optimizer.rb
49
49
  lib/kyanite/rake.rb
50
50
  lib/kyanite/range.rb
51
51
  lib/kyanite/set.rb
52
- lib/kyanite/smart_load_path.rb
53
52
  lib/kyanite/string.rb
54
53
  lib/kyanite/string/cast.rb
55
54
  lib/kyanite/string/chars.rb
@@ -58,7 +57,6 @@ lib/kyanite/string/diff.rb
58
57
  lib/kyanite/string/div.rb
59
58
  lib/kyanite/string/include.rb
60
59
  lib/kyanite/string/list.rb
61
- lib/kyanite/string/mgsub.rb
62
60
  lib/kyanite/string/nested.rb
63
61
  lib/kyanite/string/random.rb
64
62
  lib/kyanite/string/split.rb
@@ -66,17 +64,7 @@ lib/kyanite/symbol.rb
66
64
  lib/kyanite/tree.rb
67
65
  lib/kyanite/undoable.rb
68
66
  lib/kyanite/unit_test.rb
69
- script/console
70
- script/console.cmd
71
- script/destroy
72
- script/destroy.cmd
73
- script/generate
74
- script/generate.cmd
75
- script/txt2html
76
- script/txt2html.cmd
77
- tasks/deployment.rake
78
- tasks/documentation.rake
79
- tasks/environment.rake
67
+ script/console.rb
80
68
  test/_start_all.rb
81
69
  test/array/test_array.rb
82
70
  test/array/test_matrix2.rb
data/README.txt CHANGED
@@ -1,6 +1,8 @@
1
1
 
2
2
  = *Kyanite*
3
3
 
4
+ http://kyanite.rubyforge.org
5
+
4
6
  [ | *Kyanite* | Object | Array | Set | Enumerable | Hash | ] | *Kyanite* | TrueClass | FalseClass | NilClass | Div |
5
7
  ---
6
8
 
@@ -8,6 +10,8 @@
8
10
  == Features
9
11
  Kyanite is a general toolbox like Facets or ActiveSupport.
10
12
  * Transparent nil Handling, see NilClass
13
+ * Beautiful Rake, see Div
14
+ * Comfortable UnitTests, see Div
11
15
 
12
16
 
13
17
  == Usage
data/Rakefile.rb CHANGED
@@ -1,33 +1,35 @@
1
1
 
2
2
  # ----------------------------------------------------------------------------------------------
3
- # NewGem
3
+ # Deploy
4
4
  #
5
5
 
6
- %w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
6
+ require 'rubygems'
7
+ require 'hoe'
7
8
  require File.dirname(__FILE__) + '/lib/kyanite'
9
+ # %w[rubygems rake rake/clean fileutils].each { |f| require f }
8
10
 
9
- # Generate all the Rake tasks
10
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
11
- $hoe = Hoe.new('kyanite', Kyanite::VERSION) do |p|
12
11
 
13
- p.author = 'Bjoern Klippstein'
14
- p.email = 'bjoernklippstein@gmail.com'
12
+ $hoe = Hoe.spec 'kyanite' do | p |
13
+
14
+ # self.rubyforge_name = 'yourgemx' # if different than 'yourgem'
15
+
16
+ p.developer('Bjoern Klippstein', 'klippstein@klippstein.com')
17
+ p.remote_rdoc_dir = '' # Release to root only one project
18
+ p.extra_deps = [ ['activesupport', '>= 3.2.8'],
19
+ ['facets', '>= 2.9.3'],
20
+ ['rubytree', '>= 0.8.3'] ]
21
+
22
+ # p.author = 'Bjoern Klippstein'
23
+ # p.email = 'bjoernklippstein@gmail.com'
15
24
  # p.url = 'http://rapidrubyonrails.de'
16
- p.url = 'http://kyanite.rubyforge.org'
25
+ # p.url = 'http://kyanite.rubyforge.org'
17
26
 
18
- p.rubyforge_name = p.name
19
- p.summary = 'General toolbox like Facets or ActiveSupport.'
20
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
21
-
22
- p.extra_deps = [ ['activesupport', '>= 2.2.2'],
23
- ['facets', '>= 2.5.0'],
24
- ['rubytree', '>= 0.5.2'] ]
25
- p.extra_dev_deps = [ ['newgem', ">= #{::Newgem::VERSION}"] ]
26
-
27
- p.clean_globs |= %w[**/.DS_Store tmp *.log]
28
- path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
29
-
30
- p.rsync_args = "-av --delete --exclude=statsvn/"
27
+ # p.rubyforge_name = p.name
28
+ # p.summary = 'General toolbox like Facets or ActiveSupport.'
29
+ # p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
30
+ # p.clean_globs |= %w[**/.DS_Store tmp *.log]
31
+ # path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
32
+ # p.rsync_args = "-av --delete --exclude=statsvn/"
31
33
  end
32
34
 
33
35
 
@@ -37,13 +39,13 @@ end
37
39
  # Kyanite
38
40
  #
39
41
 
40
- $rake_tasks_ausblenden = %w{ audit bundles:tm deps:email deps:fetch deps:list manifest manifest:refresh
41
- announce clobber clobber_docs clobber_package clobber_rdoc check_manifest
42
- config_hoe debug_gem email features gem gemspec generate_key install_gem install_gem_no_doc
43
- local_deploy multi package repackage post_blog ridocs
44
- rdoc redocs rerdoc release
45
- website website_generate website_upload }
46
- require 'kyanite/rake'
42
+ # $rake_tasks_ausblenden = %w{ audit bundles:tm deps:email deps:fetch deps:list manifest manifest:refresh
43
+ # announce clobber clobber_docs clobber_package clobber_rdoc check_manifest
44
+ # config_hoe debug_gem email features gem gemspec generate_key install_gem install_gem_no_doc
45
+ # local_deploy multi package repackage post_blog ridocs
46
+ # rdoc redocs rerdoc release
47
+ # website website_generate website_upload }
48
+ # require 'kyanite/rake'
47
49
 
48
50
 
49
51
 
@@ -52,8 +54,8 @@ require 'kyanite/rake'
52
54
  # Local Tasks
53
55
  #
54
56
 
55
- require 'newgem/tasks' # load /tasks/*.rake
56
- Dir['tasks/**/*.rake'].each { |t| load t }
57
+ # require 'newgem/tasks' # load /tasks/*.rake
58
+ # Dir['tasks/**/*.rake'].each { |t| load t }
57
59
 
58
60
 
59
61
  # TODO - want other tests/tasks run by default? Add them to the list
data/init.rb CHANGED
File without changes
data/lib/kyanite.rb CHANGED
@@ -1,12 +1,12 @@
1
+ # ruby encoding: utf-8
1
2
 
2
3
  # Required alle Kyanite-Libs
3
4
  # -- eine Auswahl der wichtigsten Kyanite-Libs required man mit
4
5
  # require 'kyanite/basics'
5
6
 
6
- $KCODE = 'UTF8'
7
7
 
8
8
  if $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
9
- # puts 'Path schon aktuell'
9
+ puts 'Path schon aktuell'
10
10
  else
11
11
  $:.unshift(File.dirname(__FILE__))
12
12
  end
@@ -57,7 +57,7 @@ end
57
57
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
58
58
  #
59
59
  module Kyanite
60
- VERSION = '0.4.0'
60
+ VERSION = '0.5.0'
61
61
  end
62
62
 
63
63
 
data/lib/kyanite/array.rb CHANGED
File without changes
@@ -4,7 +4,9 @@ require 'facets/array/rotate' # Methoden rotate, rotate!
4
4
  require 'facets/array/select' # Methode select!
5
5
  require 'facets/to_hash' # Methode to_h (in der Facets-Bibliothek falsch einsortiert?)
6
6
 
7
- require 'kyanite/enumerable' #
7
+ require 'kyanite/enumerable/enumerable_enumerables'
8
+ require 'kyanite/enumerable/enumerable_numerics'
9
+ require 'kyanite/enumerable/enumerable_strings'
8
10
  require 'kyanite/general/object' # Methode respond
9
11
  require 'kyanite/general/classutils' # <=> für Class
10
12
  require 'kyanite/symbol' # size
@@ -91,37 +93,7 @@ class Array
91
93
 
92
94
 
93
95
 
94
- # ==================================================================================
95
- # divide
96
- #
97
-
98
96
 
99
-
100
- # Set#divide doesn't work well recursively because Set can't handle Sets of Sets properly
101
- #
102
- #
103
- # Test und Beispiel siehe TestKyaniteArray#test_divide
104
- #
105
- def divide(&func)
106
- require 'tsort'
107
- class << dig = {} # :nodoc:
108
- include TSort
109
- alias tsort_each_node each_key
110
- def tsort_each_child(node, &block)
111
- fetch(node).each(&block)
112
- end #def
113
- end #class
114
-
115
- each { |u|
116
- dig[u] = a = []
117
- each{ |v| func.call(u, v) and a << v }
118
- }
119
-
120
- result = []
121
- dig.each_strongly_connected_component { |css| result << (self.class.new(css)) }
122
- result
123
- end #def
124
-
125
97
 
126
98
 
127
99
 
@@ -147,6 +119,8 @@ end # class Array
147
119
 
148
120
 
149
121
 
122
+
123
+
150
124
  class NilClass
151
125
  def shift_complement; nil; end
152
126
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
 
2
- require 'facets/dictionary'
2
+ require 'hashery' # old: 'facets/dictionary'
3
3
  require 'kyanite/enumerable' # is_collection?
4
4
 
5
5
 
@@ -14,7 +14,7 @@ require 'kyanite/enumerable' # is_collection?
14
14
  # [ ] See TestKyaniteDictionary for tests and examples.
15
15
  #
16
16
  #
17
- class Dictionary
17
+ class Dictionary < Hashery::Dictionary
18
18
 
19
19
  def fetch_by_index(index)
20
20
  @hash[order[index]]
@@ -107,7 +107,6 @@ end
107
107
  #
108
108
  if $0 == __FILE__
109
109
 
110
- require 'perception'
111
110
  test = Dictionary[ 'a', 1, 'b', 2, 'c', 3 ]
112
111
  see test
113
112
  see
File without changes
@@ -1,3 +1,4 @@
1
+ # ruby encoding: utf-8
1
2
 
2
3
  module Enumerable
3
4
 
@@ -1,3 +1,4 @@
1
+ # ruby encoding: utf-8
1
2
 
2
3
  # [ | Kyanite | Object | Array | Set | *Enumerable* | Hash | ] | Enumerable | *EnumerableNumerics* | EnumerableStrings | EnumerableEnumerables |
3
4
  # ---
@@ -156,7 +157,6 @@ end
156
157
  # Ausprobieren
157
158
  #
158
159
  if $0 == __FILE__
159
- require 'perception'
160
160
  class Array
161
161
  include EnumerableNumerics
162
162
  end
@@ -1,3 +1,4 @@
1
+ # ruby encoding: utf-8
1
2
 
2
3
  # [ | Kyanite | Object | Array | Set | *Enumerable* | Hash | ] | Enumerable | EnumerableNumerics | *EnumerableStrings* | EnumerableEnumerables |
3
4
  # ---
@@ -1,3 +1,7 @@
1
+ # ruby encoding: utf-8
2
+
3
+ require 'kyanite/general/object'
4
+ require 'kyanite/array/array'
1
5
 
2
6
 
3
7
 
@@ -174,7 +178,7 @@ if $0 == __FILE__
174
178
  class Array
175
179
  include Enumerable
176
180
  end
177
- require 'perception'
181
+
178
182
 
179
183
  test = [ ]
180
184
  see test.contentclass(:precision => :all)
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
 
2
2
 
3
3
  require 'facets/kernel/singleton_class' # Easy access to an object‘s "special" class, otherwise known as it‘s eigen or meta class.
4
- require 'facets/class/descendents' # Methode descendents
4
+ require 'facets/class/descendants' # Methode descendants
5
5
 
6
6
 
7
7
  # [ | Kyanite | *Object* | Array | Set | Enumerable | Hash | ] | *Object* | String | Symbol | Numeric |
@@ -23,8 +23,8 @@ class Class
23
23
  # Unscharfer Vergleich zweier Klassen, z.B. für Tests
24
24
  def =~(other)
25
25
  return true if self == other
26
- return true if self.descendents.include?(other)
27
- return true if other.descendents.include?(self)
26
+ return true if self.descendants.include?(other)
27
+ return true if other.descendants.include?(self)
28
28
  return false
29
29
  end
30
30
 
@@ -60,7 +60,7 @@ class Symbol
60
60
  # [ ] Siehe String#to_classname
61
61
  # [ ] Tests and examples see TestKyaniteClassutils
62
62
  #
63
- def to_classname
63
+ def to_classname
64
64
  self.to_s.to_classname
65
65
  end
66
66
 
@@ -7,7 +7,8 @@ unless defined? WINDOWS
7
7
  end
8
8
 
9
9
  unless defined? RUBYDIR
10
- RUBYDIR = Config::CONFIG['prefix']
10
+ RUBYDIR = RbConfig::CONFIG['prefix']
11
+ # puts "rubydir=" + RUBYDIR
11
12
  end
12
13
 
13
14
 
@@ -60,16 +61,18 @@ module KKernel
60
61
  end
61
62
 
62
63
 
63
-
64
64
  # [ ] Vereinfacht die require-Statements in den Tests.
65
65
  # [ ] Wird in allen Kyanite-Tests angewendet, Verwendung siehe dort.
66
66
  #
67
67
  def smart_load_path(__file__ = nil)
68
68
  __file__ = caller[0] unless __file__
69
69
  dir_caller =File.dirname(__file__)
70
+
71
+ puts "dircaller " + dir_caller
72
+
70
73
  patharray = dir_caller.split('/')
71
74
  patharray = dir_caller.split("\\") if patharray.size == 1
72
- libpath = File.join(patharray)
75
+ # libpath = File.join(patharray)
73
76
  patharray.size.times do |i|
74
77
  break if File.directory?( File.join(patharray, 'lib') )
75
78
  patharray << '..'
@@ -82,16 +85,10 @@ module KKernel
82
85
  return true
83
86
  end
84
87
 
85
- end #def
86
-
87
-
88
-
89
-
90
-
88
+ end #def
91
89
 
92
90
 
93
-
94
- end # class
91
+ end # module
95
92
 
96
93
  class Object
97
94
  include KKernel
@@ -102,7 +99,7 @@ end
102
99
  # Ausprobieren
103
100
  #
104
101
  if $0 == __FILE__
105
- require 'perception'
102
+
106
103
  # pp RUBYDIR
107
104
 
108
105
  smart_load_path(__FILE__)