shairontoledo-autopath 0.3.2

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.
data/lib/autopath.rb ADDED
@@ -0,0 +1,12 @@
1
+ require 'pathname'
2
+ require 'recursive_path'
3
+ require 'load_package'
4
+ class AutoPath
5
+
6
+ def self.create(name,load_files=false)
7
+ RecursivePath.create(name)
8
+ LoadPackage.new(name,load_files)
9
+ end
10
+
11
+ end
12
+
@@ -0,0 +1,32 @@
1
+
2
+ class LoadPackage
3
+ def initialize(_name,load_files=false)
4
+ $LOAD_PATH << _name
5
+ name=camelize(File.basename(_name))
6
+ root=Object.const_set name, Module.new
7
+ perform(root,Pathname.new(_name))
8
+ @load_files=load_files
9
+ end
10
+
11
+ def camelize(str)
12
+ str.split(/_/).map{|v| v.capitalize}.join
13
+ end
14
+
15
+ def add_module(parent,child_name)
16
+ parent.const_set(child_name, Module.new)
17
+ end
18
+
19
+ def perform(parent,node)
20
+ #puts "PERFORM: #{parent},#{node}"
21
+ node.children.each do |d|
22
+ next if d.basename.to_s =~ /^\./
23
+ if d.directory?
24
+ new_parent=add_module(parent,camelize(d.basename.to_s) )
25
+ perform(new_parent,d)
26
+ elsif d.basename.to_s =~ /\.rb$/
27
+ require d.to_s if @load_files
28
+ #puts "FILE: #{d.basename} -> #{d.to_s}"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ class RecursivePath < String
2
+
3
+ def method_missing(meth)
4
+ RecursivePath.new(File.join(self,meth.to_s))
5
+ end
6
+
7
+ def self.create(name)
8
+ Kernel.module_eval do
9
+ define_method(File.basename(name.to_s)) { RecursivePath.new(name.to_s.dup) }
10
+ end
11
+ end
12
+
13
+ end
14
+
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shairontoledo-autopath
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Shairon Toledo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-16 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Helps developers work with modules and files
17
+ email:
18
+ - shairon.toledo@gmail.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files: []
24
+
25
+ files:
26
+ - lib/autopath.rb
27
+ - lib/load_package.rb
28
+ - lib/recursive_path.rb
29
+ has_rdoc: false
30
+ homepage: http://github.com/shairontoledo/autopath
31
+ post_install_message:
32
+ rdoc_options: []
33
+
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
41
+ version:
42
+ required_rubygems_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ requirements: []
49
+
50
+ rubyforge_project: autopath
51
+ rubygems_version: 1.2.0
52
+ signing_key:
53
+ specification_version: 2
54
+ summary: autopath 0.3
55
+ test_files: []
56
+