RubyExt 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,6 +1,20 @@
1
1
  === Readme ===
2
- {TODO}
3
-
2
+ For docs go to spec.
3
+
4
+ Most usefull classes are: ClassLoader, Cache, Localization, Synchronizer, Path,
5
+ module.rb, assert.rb.
6
+
7
+ === Memo ====
8
+ I'm new to Git and this is shome memo for me :).
9
+ ssh-add axyd
10
+ git remote add origin git@github.com:alexeypetrushin/RubyExt.git
11
+ git pull origin master
12
+ git push origin master
13
+ http://jonas.nitro.dk/git/quick-reference.html
14
+
15
+ === Copyright ===
16
+ Copyright (c) 2009, Alexey Petrushin
17
+ All rights reserved.
4
18
 
5
19
  === License (LGPL) ===
6
20
 
@@ -0,0 +1,23 @@
1
+ class Config
2
+ attr_reader :runtime, :config, :default
3
+
4
+ def initialize runtime, config, default
5
+ @runtime, @config, @default = runtime, config, default
6
+ end
7
+
8
+ def [] key
9
+ value = @runtime[key]
10
+ value = @config[key] if value.equal? nil
11
+ value = @default[key] if value.equal? nil
12
+ raise "There is no key #{key}!" if value.equal? nil
13
+ return value
14
+ end
15
+
16
+ def []= key, value
17
+ @runtime[key] = value
18
+ end
19
+
20
+ def include? key
21
+ (@runtime[key] != nil) or (@config[key] != nil) or (@default[key] != nil)
22
+ end
23
+ end
@@ -54,6 +54,6 @@ module Log
54
54
  end
55
55
 
56
56
  module Log
57
- config = Dir.getwd + "config/log.xml"
57
+ config = Dir.getwd + "/config/log.xml"
58
58
  Log4r::Configurator.load_xml_string(File.read(config)) if File.exist? config
59
59
  end
@@ -3,7 +3,7 @@ module RubyExt
3
3
  attr_accessor :directories
4
4
 
5
5
  def initialize directories = lambda{[File.expand_path('.')]}
6
- @directories, @files, @cache = directories, {}, {}
6
+ @directories = directories
7
7
  end
8
8
 
9
9
  def class_get class_name
@@ -33,7 +33,7 @@ module RubyExt
33
33
  end
34
34
 
35
35
  length = File.write(path, data)
36
- remember_file path
36
+ FileSystemProvider.remember_file path
37
37
  return length
38
38
  end
39
39
 
@@ -81,7 +81,7 @@ module RubyExt
81
81
  end
82
82
 
83
83
  length = File.write path, data
84
- remember_file path
84
+ FileSystemProvider.remember_file path
85
85
  return length
86
86
  end
87
87
 
@@ -90,43 +90,7 @@ module RubyExt
90
90
  raise Resource::NotExist unless class_path
91
91
 
92
92
  real_resource_path(class_name, resource_name) != nil
93
- end
94
-
95
-
96
- def check_for_changed_files
97
- changed = []
98
- v = @directories.call
99
- @directories.call.inject([]){|list, dir| list + Dir.glob("#{dir}/**/**")}.each do |path|
100
- if file_changed? path
101
- remember_file path
102
- changed << file_changed(path)
103
- end
104
- end
105
- return changed
106
- end
107
-
108
- def reset_changed_files
109
- @files = {}
110
- @directories.call.inject([]){|list, dir| list + Dir.glob("#{dir}/**/**")}.each do |path|
111
- remember_file path
112
- end
113
- end
114
-
115
- # Different Providers can use different class path interpretation.
116
- # So we return virtual path only if this path really exist.
117
- def class_to_virtual_file class_name
118
- path = nil
119
- if @cache.include? class_name
120
- path = @cache[class_name]
121
- else
122
- path = real_class_path class_name
123
- raise Resource::NotExist, "Class '#{class_name}' doesn't Exist!" unless path
124
-
125
- @cache[class_name] = path
126
- end
127
-
128
- File.expand_path path
129
- end
93
+ end
130
94
 
131
95
  # def class_to_virtual_path class_name
132
96
  # result = nil
@@ -158,6 +122,112 @@ module RubyExt
158
122
  # end
159
123
  # end
160
124
 
125
+ # Different Providers can use different class path interpretation.
126
+ # So we return virtual path only if this path really exist.
127
+ def class_to_virtual_file class_name
128
+ path = nil
129
+ if FileSystemProvider.cache.include? class_name
130
+ path = FileSystemProvider.cache[class_name]
131
+ else
132
+ path = real_class_path class_name
133
+ raise Resource::NotExist, "Class '#{class_name}' doesn't Exist!" unless path
134
+
135
+ FileSystemProvider.cache[class_name] = path
136
+ end
137
+
138
+ File.expand_path path
139
+ end
140
+
141
+ # Reloading
142
+ @files, @cache = {}, {}
143
+ class << self
144
+ attr_reader :cache
145
+
146
+ def start_watching interval = 2, directories = Dir.glob("**/lib")
147
+ stop_watching
148
+ @watch_thread = Thread.new do
149
+ reset_changed_files directories
150
+ while true
151
+ sleep interval
152
+ begin
153
+ check_for_changed_files(directories).each do |type, klass, res|
154
+ Resource.notify_observers :update_resource, type, klass, res
155
+ end
156
+ rescue Exception => e
157
+ warn e
158
+ end
159
+ end
160
+ end
161
+ end
162
+
163
+ def stop_watching
164
+ if @watch_thread
165
+ @watch_thread.kill
166
+ @watch_thread = nil
167
+ end
168
+ end
169
+
170
+ def remember_file path
171
+ @files[path] = File.mtime(path)
172
+ end
173
+
174
+ protected
175
+ def check_for_changed_files directories
176
+ changed = []
177
+ directories.inject([]){|list, dir| list + Dir.glob("#{dir}/**/**")}.each do |path|
178
+ if file_changed? path, directories
179
+ remember_file path
180
+ changed << file_changed(path, directories)
181
+ end
182
+ end
183
+ return changed
184
+ end
185
+
186
+ def reset_changed_files directories
187
+ @files = {}
188
+ directories.inject([]){|list, dir| list + Dir.glob("#{dir}/**/**")}.each do |path|
189
+ remember_file path
190
+ end
191
+ end
192
+
193
+ def file_changed? path, directories
194
+ old_time = @files[path]
195
+ old_time == nil or old_time != File.mtime(path)
196
+ end
197
+
198
+ def file_changed path, directories
199
+ begin
200
+ if path =~ /\.rb$/
201
+ path = path.sub(/\.rb$/, "")
202
+ class_name = path_to_class(path, directories)
203
+
204
+ # ClassLoader.reload_class()
205
+ klass = eval class_name, TOPLEVEL_BINDING, __FILE__, __LINE__
206
+ cache.delete class_name
207
+ return :class, klass, nil
208
+ else
209
+ if path =~ /\.res/
210
+ class_path = path.sub(/\.res.+/, "")
211
+ resource_name3 = path.sub("#{class_path}.res/", "")
212
+ class_name = path_to_class class_path, directories
213
+ else
214
+ resource_name3 = path.sub(/.+\./, "")
215
+ class_name = path_to_class path.sub(/\.#{resource_name3}$/, ""), directories
216
+ end
217
+ klass = eval class_name, TOPLEVEL_BINDING, __FILE__, __LINE__
218
+ return :resource, klass, resource_name3
219
+ end
220
+ rescue Exception => e
221
+ warn "Can't reload file '#{path}' #{e.message}!"
222
+ end
223
+ end
224
+
225
+ def path_to_class path, directories
226
+ base_dir = directories.select{|f| path.include? f}.max{|a, b| a.size <=> b.size}
227
+ path.gsub(/^#{base_dir}\//, "").gsub("/", "::")
228
+ end
229
+ end
230
+
161
231
  protected
162
232
  def real_class_path class_name
163
233
  path = class_to_files(class_name).find{|f| File.exist? f}
@@ -180,48 +250,7 @@ module RubyExt
180
250
  def class_to_basefiles class_name
181
251
  relative = class_name.gsub("::", "/")
182
252
  return @directories.call.collect{|dir| "#{dir}/#{relative}"}
183
- end
184
-
185
- def remember_file path
186
- @files[path] = File.mtime(path)
187
- end
188
-
189
- def file_changed? path
190
- old_time = @files[path]
191
- old_time == nil or old_time != File.mtime(path)
192
- end
193
-
194
- def file_changed path
195
- begin
196
- if path =~ /\.rb$/
197
- path = path.sub(/\.rb$/, "")
198
- class_name = path_to_class(path)
199
-
200
- # ClassLoader.reload_class()
201
- klass = eval class_name, TOPLEVEL_BINDING, __FILE__, __LINE__
202
- @cache.delete class_name
203
- return :class, klass, nil
204
- else
205
- if path =~ /\.res/
206
- class_path = path.sub(/\.res.+/, "")
207
- resource_name = path.sub("#{class_path}.res/", "")
208
- class_name = path_to_class class_path
209
- else
210
- resource_name = path.sub(/.+\./, "")
211
- class_name = path_to_class path.sub(/\.#{resource_name}$/, "")
212
- end
213
- klass = eval class_name, TOPLEVEL_BINDING, __FILE__, __LINE__
214
- return :resource, klass, resource_name
215
- end
216
- rescue Exception => e
217
- warn "Can't reload file '#{path}' #{e.message}!"
218
- end
219
- end
220
-
221
- def path_to_class path
222
- base_dir = @directories.call.select{|f| path.include? f}.max{|a, b| a.size <=> b.size}
223
- path.gsub(/^#{base_dir}\//, "").gsub("/", "::")
224
- end
253
+ end
225
254
 
226
255
  # Doesn't make Sense for Virtual Resource System
227
256
  # def resource_path class_name, resource_name
@@ -0,0 +1,56 @@
1
+ require 'RubyExt/require_base'
2
+
3
+ # Ruby Classes extensions
4
+ %w{
5
+ symbol string array false_class true_class nil_class
6
+ }.each{|n| require "RubyExt/#{n}"}
7
+
8
+ Path = RubyExt::Path
9
+ Log = RubyExt::Log
10
+ Observable = RubyExt::Observable
11
+ OpenConstructor = RubyExt::OpenConstructor
12
+ Cache = RubyExt::Cache
13
+
14
+ # Facets
15
+ require 'facets/elementor'
16
+ require 'facets/blankslate'
17
+ # Dictionary, Crypt, BiCrypt, Duration, LRUCache, LinkedList, Timer, Memoizer,
18
+ # Recorder, attr_validator
19
+ # "TreeTop" - cool Ruby Parser DSL.
20
+
21
+ # ResourceProcessing
22
+ require 'yaml'
23
+ module RubyExt
24
+ Resource.register_resource_extension(
25
+ ".yaml",
26
+ lambda{|data, klass, name| YAML.load(data)},
27
+ lambda{|data, klass, name| YAML.dump(data)}
28
+ )
29
+
30
+ Resource.register_resource_extension(
31
+ ".rb",
32
+ lambda{|data, klass, name|
33
+ script = ClassLoader.wrap_inside_namespace(klass, data)
34
+ eval script, TOPLEVEL_BINDING, "#{klass.name}/#{name}"
35
+ },
36
+ lambda{|data, klass, name| raise "Writing '.rb' Resource isn't supported!"}
37
+ )
38
+ end
39
+
40
+ # Cache
41
+ Cache.cached_with_params :class, Module, :resource_exist?, :[]
42
+
43
+ # Others
44
+ require 'fileutils'
45
+ # Undef
46
+ #[
47
+ #:select, :autoload, :autoload?, :chomp, :chomp!, :chop, :chop!, :fail, :format, :gsub,
48
+ #:gsub!, :iterator?, :open, :print, :printf, :puts, :putc, :readline, :readlines, :scan,
49
+ #:split, :sub, :sub!, :test, :trap, :warn
50
+ #].each do |m|
51
+ # Kernel.send :undef_method, m
52
+ #end
53
+
54
+ # select
55
+
56
+ require 'RubyExt/debug'
@@ -0,0 +1,35 @@
1
+ require 'monitor'
2
+ require 'singleton'
3
+ require 'set'
4
+
5
+ class NotDefined; end
6
+
7
+ # Core Classes, can't be excluded.
8
+ %w{
9
+ kernel module object class file
10
+ }.each{|n| require "RubyExt/#{n}"}
11
+
12
+ require 'RubyExt/assert'
13
+ require 'RubyExt/observable'
14
+
15
+ require 'RubyExt/resource'
16
+ require 'RubyExt/Resource/file_system_provider'
17
+
18
+ # Need this complex loading for correct work of 'raise_without_self''
19
+ module RubyExt
20
+ # libraries_in_working_dir = Dir.glob("*/**/lib").select{|f| File.directory? f}.collect{|f| File.expand_path f}
21
+ # specs_in_working_dir = Dir.glob("*/**/spec").select{|f| File.directory? f}.collect{|f| File.expand_path f}
22
+ directories = lambda do
23
+ $LOAD_PATH.select{|f| ![/site_ruby/, /vendor_ruby/, /bin$/].any?{|re| f =~ re}}\
24
+ .collect{|f| File.expand_path f}
25
+ # $LOAD_PATH.select{|dir| dir =~ /gems.+lib/}
26
+ # $LOAD_PATH.select{|dir| dir =~ /gems.+spec/} +
27
+ # [Dir.getwd] +
28
+ # libraries_in_working_dir
29
+ # specs_in_working_dir
30
+ end
31
+ Resource.add_resource_provider FileSystemProvider.new(directories)
32
+
33
+ script = Resource.class_get "RubyExt::ClassLoader"
34
+ eval script, TOPLEVEL_BINDING, Resource.class_to_virtual_file("RubyExt::ClassLoader")
35
+ end
@@ -1,56 +1 @@
1
- require 'RubyExt/require_base'
2
-
3
- # Ruby Classes extensions
4
- %w{
5
- symbol string array false_class true_class nil_class
6
- }.each{|n| require "RubyExt/#{n}"}
7
-
8
- Path = RubyExt::Path
9
- Log = RubyExt::Log
10
- Observable = RubyExt::Observable
11
- OpenConstructor = RubyExt::OpenConstructor
12
- Cache = RubyExt::Cache
13
-
14
- # Facets
15
- require 'facets/elementor'
16
- require 'facets/blankslate'
17
- # Dictionary, Crypt, BiCrypt, Duration, LRUCache, LinkedList, Timer, Memoizer,
18
- # Recorder, attr_validator
19
- # "TreeTop" - cool Ruby Parser DSL.
20
-
21
- # ResourceProcessing
22
- require 'yaml'
23
- module RubyExt
24
- Resource.register_resource_extension(
25
- ".yaml",
26
- lambda{|data, klass, name| YAML.load(data)},
27
- lambda{|data, klass, name| YAML.dump(data)}
28
- )
29
-
30
- Resource.register_resource_extension(
31
- ".rb",
32
- lambda{|data, klass, name|
33
- script = ClassLoader.wrap_inside_namespace(klass, data)
34
- eval script, TOPLEVEL_BINDING, "#{klass.name}/#{name}"
35
- },
36
- lambda{|data, klass, name| raise "Writing '.rb' Resource isn't supported!"}
37
- )
38
- end
39
-
40
- # Cache
41
- Cache.cached_with_params :class, Module, :resource_exist?, :[]
42
-
43
- # Others
44
- require 'fileutils'
45
- # Undef
46
- #[
47
- #:select, :autoload, :autoload?, :chomp, :chomp!, :chop, :chop!, :fail, :format, :gsub,
48
- #:gsub!, :iterator?, :open, :print, :printf, :puts, :putc, :readline, :readlines, :scan,
49
- #:split, :sub, :sub!, :test, :trap, :warn
50
- #].each do |m|
51
- # Kernel.send :undef_method, m
52
- #end
53
-
54
- # select
55
-
56
- require 'RubyExt/debug'
1
+ require 'RubyExt/_require'
@@ -1,35 +1 @@
1
- require 'monitor'
2
- require 'singleton'
3
- require 'set'
4
-
5
- class NotDefined; end
6
-
7
- # Core Classes, can't be excluded.
8
- %w{
9
- kernel module object class file
10
- }.each{|n| require "RubyExt/#{n}"}
11
-
12
- require 'RubyExt/assert'
13
- require 'RubyExt/observable'
14
-
15
- require 'RubyExt/resource'
16
- require 'RubyExt/Resource/file_system_provider'
17
-
18
- # Need this complex loading for correct work of 'raise_without_self''
19
- module RubyExt
20
- # libraries_in_working_dir = Dir.glob("*/**/lib").select{|f| File.directory? f}.collect{|f| File.expand_path f}
21
- # specs_in_working_dir = Dir.glob("*/**/spec").select{|f| File.directory? f}.collect{|f| File.expand_path f}
22
- directories = lambda do
23
- $LOAD_PATH.select{|f| ![/site_ruby/, /vendor_ruby/, /bin$/].any?{|re| f =~ re}}\
24
- .collect{|f| File.expand_path f}
25
- # $LOAD_PATH.select{|dir| dir =~ /gems.+lib/}
26
- # $LOAD_PATH.select{|dir| dir =~ /gems.+spec/} +
27
- # [Dir.getwd] +
28
- # libraries_in_working_dir
29
- # specs_in_working_dir
30
- end
31
- Resource.add_resource_provider FileSystemProvider.new(directories)
32
-
33
- script = Resource.class_get "RubyExt::ClassLoader"
34
- eval script, TOPLEVEL_BINDING, Resource.class_to_virtual_file("RubyExt::ClassLoader")
35
- end
1
+ require 'RubyExt/_require_base'
@@ -142,33 +142,7 @@ module RubyExt
142
142
  p.resource_exist? klass.name, resource_name
143
143
  end
144
144
  end
145
- end
146
-
147
- def start_watching interval = 2
148
- stop_watching
149
- @watch_thread = Thread.new do
150
- providers.each{|p| p.reset_changed_files}
151
- while true
152
- sleep interval
153
- begin
154
- providers.each do |p|
155
- p.check_for_changed_files.each do |type, klass, res|
156
- notify_observers :update_resource, type, klass, res
157
- end
158
- end
159
- rescue Exception => e
160
- warn e
161
- end
162
- end
163
- end
164
- end
165
-
166
- def stop_watching
167
- if @watch_thread
168
- @watch_thread.kill
169
- @watch_thread = nil
170
- end
171
- end
145
+ end
172
146
 
173
147
  def class_to_virtual_file class_name
174
148
  @monitor.synchronize do
data/rakefile CHANGED
@@ -3,6 +3,7 @@ require 'spec/rake/spectask'
3
3
 
4
4
  Dir.chdir File.dirname(__FILE__)
5
5
 
6
+ # Specs
6
7
  task :default => :spec
7
8
 
8
9
  Spec::Rake::SpecTask.new('spec') do |t|
@@ -10,13 +11,14 @@ Spec::Rake::SpecTask.new('spec') do |t|
10
11
  t.libs = ["lib", "spec"]
11
12
  end
12
13
 
14
+ # Gem
13
15
  require 'rake/clean'
14
16
  require 'rake/gempackagetask'
15
17
  require 'fileutils'
16
18
 
17
19
  spec = Gem::Specification.new do |s|
18
20
  s.name = "RubyExt"
19
- s.version = "0.1.1"
21
+ s.version = "0.1.2"
20
22
  s.summary = "A set of Ruby language extensions, mainly for ActivePoint Project"
21
23
  s.description = "A set of Ruby language extensions, mainly for ActivePoint Project"
22
24
  s.author = "Alexey Petrushin"
@@ -32,13 +34,14 @@ spec = Gem::Specification.new do |s|
32
34
  .select{|f| f !~ /^\./}
33
35
  # s.executables = ['restclient']
34
36
  # s.add_dependency("BlueCloth", ">= 0.0.4")
37
+ s.add_dependency "facets"
35
38
 
36
39
  s.require_path = "lib"
37
40
  end
38
41
 
39
42
  Rake::GemPackageTask.new(spec) do |p|
40
43
  package_dir = "#{File.expand_path File.dirname(__FILE__)}/../build"
41
- FileUtils.mkdir package_dir unless File.exist? package_dir
44
+ # FileUtils.mkdir package_dir unless File.exist? package_dir
42
45
  p.need_tar = true if RUBY_PLATFORM !~ /mswin/
43
46
  p.need_zip = true
44
47
  p.package_dir = package_dir
@@ -1 +1,11 @@
1
- class Test; end
1
+ require 'ActivePoint/require'
2
+
3
+ #y({:en => WGUIExt::Editors::RichTextData.new})
4
+
5
+ v = ObjectModel::Types::ObjectType.yaml_load %{---
6
+ :en: !ruby/object:WGUIExt::Editors::RichTextData
7
+ resources: []
8
+
9
+ text: ""}
10
+
11
+ p v
@@ -0,0 +1,37 @@
1
+ require 'RubyExt/require'
2
+ require 'spec'
3
+
4
+ module RubyExt
5
+ describe 'Config' do
6
+ it "Use Case" do
7
+ runtime = {1 => 1}
8
+ config = {1 => 2, 2 => 2}
9
+ default = {1 => 3, 2 => 3, 3 => 3}
10
+
11
+ c = RubyExt::Config.new runtime, config, default
12
+ c[1].should == 1
13
+ c[2].should == 2
14
+ c[3].should == 3
15
+
16
+ lambda{c[:unknown]}.should raise_error(/key/)
17
+ end
18
+
19
+ it "set runtime key" do
20
+ c = RubyExt::Config.new({}, {}, {})
21
+ lambda{c[:key]}.should raise_error(/key/)
22
+ c[:key] = :value
23
+ c[:key].should == :value
24
+ end
25
+
26
+ it "shouold correct works with false" do
27
+ runtime = {1 => false, 2 => false}
28
+ config = {2 => true}
29
+
30
+ c = RubyExt::Config.new runtime, config, {}
31
+ c.should include(1)
32
+ c.should include(2)
33
+ c[1].should == false
34
+ c[2].should == false
35
+ end
36
+ end
37
+ end
@@ -1,4 +1,5 @@
1
1
  require 'RubyExt/require_base'
2
+ require 'fileutils'
2
3
  require 'spec'
3
4
  Thread.abort_on_exception=true
4
5
 
@@ -97,7 +98,7 @@ module RubyExt
97
98
  Resource.add_observer obs
98
99
 
99
100
  begin
100
- Resource.start_watching(1)
101
+ FileSystemProvider.start_watching(1, [File.dirname __FILE__])
101
102
 
102
103
  sleep 0.1
103
104
  base = "#{File.dirname(__FILE__)}/RubyExt/ForResource"
@@ -106,8 +107,8 @@ module RubyExt
106
107
  File.write("#{base}/ChangedClass.res/Text.txt", "")
107
108
  sleep 1.5
108
109
  ensure
109
- Resource.stop_watching
110
- end
110
+ FileSystemProvider.stop_watching
111
+ end
111
112
 
112
113
  obs.classes.size.should == 3
113
114
  obs.classes.all?{|k| k == ForResource::ChangedClass}.should be_true
@@ -126,7 +127,7 @@ end}
126
127
  end
127
128
 
128
129
  it "ResourceExtension" do
129
- require "#{File.expand_path(File.dirname(__FILE__))}/../lib/RubyExt/require"
130
+ require "RubyExt/require"
130
131
  Resource.resource_set RubyExt::ForResource::ResourceExtension, "Data.yaml", {:value => true}
131
132
  res = Resource.resource_get RubyExt::ForResource::ResourceExtension, "Data.yaml"
132
133
  res.should == {:value => true}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RubyExt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Petrushin
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-12 00:00:00 -04:00
12
+ date: 2009-06-15 00:00:00 -04:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: facets
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: A set of Ruby language extensions, mainly for ActivePoint Project
17
26
  email:
18
27
  executables: []
@@ -43,8 +52,10 @@ files:
43
52
  - lib/RubyExt/kernel.rb
44
53
  - lib/RubyExt/debug.rb
45
54
  - lib/RubyExt/class.rb
55
+ - lib/RubyExt/_require.rb
46
56
  - lib/RubyExt/ExtraBlankSlate.rb
47
57
  - lib/RubyExt/observable.rb
58
+ - lib/RubyExt/_require_base.rb
48
59
  - lib/RubyExt/Cache.res
49
60
  - lib/RubyExt/Cache.res/single_version_with_args.txt
50
61
  - lib/RubyExt/Cache.res/multiple_version_without_args.txt
@@ -59,7 +70,7 @@ files:
59
70
  - lib/RubyExt/nil_class.rb
60
71
  - lib/RubyExt/ImportAll.rb
61
72
  - lib/RubyExt/true_class
62
- - lib/RubyExt/ideas.txt
73
+ - lib/RubyExt/Config.rb
63
74
  - lib/RubyExt/StateMashine.rb
64
75
  - lib/RubyExt/false_class.rb
65
76
  - lib/RubyExt/require_base.rb
@@ -144,6 +155,7 @@ files:
144
155
  - spec/synchronizer_spec.rb
145
156
  - spec/localization_spec.rb
146
157
  - spec/path_spec.rb
158
+ - spec/config_spec.rb
147
159
  has_rdoc: true
148
160
  homepage: http://www.bos-tec.com
149
161
  post_install_message:
@@ -1,17 +0,0 @@
1
- CRITICAL
2
- - Reloading resourses in ClassXXX.res folder doesn't works.
3
- - Change 'raise_without_self' to caller.delete(SomePackage)
4
-
5
- MEDIUM
6
-
7
- LOW
8
- - Add macros functionality to Ruby. (for example replace all '!=' with 'not_equal')
9
- - Create project 'Flawless Ruby' (macros != to not_equal, and so on)
10
- - Automatically evaluate extension for resources, use Class["res"] instead of Class["res.yaml"]
11
-
12
- DONE
13
- - Add resource providers chaining.
14
- - Resource providers should be abstract (also for ObjectModel storage).
15
- - Cashe implementation
16
- - Resource reloading doesn't works (fix and add spec).
17
- - Add raise_withoud_self 'bla-bla', [excludeAclass, excludeBclass]