loader 1.1.1 → 1.2.0.rc

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc3ca6badf0c4ab6eefeb7c71005a60743c83fb2
4
- data.tar.gz: 8fa4937295eccc61b4fa170ee6c934e59573de01
3
+ metadata.gz: 80d5026a46aa747e48da743f3a97437c20f67a3c
4
+ data.tar.gz: ea2662f408bda885a2f13d59e0dbefd147c31b61
5
5
  SHA512:
6
- metadata.gz: e6c5cbca9ba96f9dedaea51df364cc1df512b3ae677a59ffeecc99b86c135bf538c190b6c1e793f367c082844b4b83341d6e42a704adbfd500348c9794f04132
7
- data.tar.gz: ea7808277b0bfbe7e1263da645d86819faa868fd1a4333ff1263e1311a91561dc49745da488784146af2677e0b3d3b776de3e5ffef978a0f3cae1a21836b8e95
6
+ metadata.gz: 2e1fd02ec6480af17a9659562db8a4b93431730d663cf6baf367aa9d14c4988ff40d30465c2762c4ab9dc02a1db3356b0e59a1a5ac2816daca8aadf76d53d0a1
7
+ data.tar.gz: 6d79d2ed852bce1e85b304a704e91a35354733d4eda993e7deab879aac3b7f966339da2a5741bfb4beaf5f1e81d83d8d8d2fea54cea0f0e25f70f82424626371
data/README.md CHANGED
@@ -18,10 +18,14 @@ the File Expand tricks
18
18
 
19
19
  The end goal is to make an easy ruby file loader for gems. So Dir.pwd do not affect
20
20
 
21
- the use cases are hell simple , like:
21
+ ### Examples
22
+
23
+ load relative directory (not based on Dir.pwd)
22
24
 
23
25
  ```ruby
24
26
 
27
+ require 'loader'
28
+
25
29
  # return and load the meta files from
26
30
  # the lib/**/meta and return the hash obj build from the yamls
27
31
  Loader.meta
@@ -34,4 +38,24 @@ the use cases are hell simple , like:
34
38
  require_directory "lib", :r
35
39
  #> require_directory is an alias for require_relative_directory
36
40
 
41
+ # you can use recursive by default call too
42
+ require_directory_r "lib" #> || require_relative_directory_r
43
+
37
44
  ```
45
+
46
+ Additional Syntax for caller magic
47
+
48
+ ```ruby
49
+
50
+ require 'loader'
51
+
52
+ __directory__ #> || __DIR__
53
+ #> return the current folder where the file is
54
+
55
+ caller_folder
56
+ #> return the folder what called the current file/method/object
57
+
58
+ caller_file
59
+ #> return the file what called the current file/method/object
60
+
61
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.2.0.rc
data/lib/loader/meta.rb CHANGED
@@ -1,11 +1,85 @@
1
1
  module Loader
2
+
3
+ module ObjectCallerEXT
4
+
5
+ def __directory__
6
+ caller_folder(-1)
7
+ end
8
+
9
+ alias :__DIR__ :__directory__
10
+
11
+ def caller_file skip= 0
12
+
13
+ raise unless skip.class <= Integer
14
+ skip += 1
15
+
16
+ return nil if caller[skip].nil?
17
+ caller_file = caller[skip].scan(/^(.*)(:\d+:\w+)/)[0][0]
18
+
19
+ if caller_file[0] != File::Separator
20
+ caller_file= File.expand_path caller_file
21
+ end
22
+
23
+ return caller_file
24
+
25
+ end
26
+
27
+ def caller_folder skip= 0
28
+
29
+ raise unless skip.class <= Integer
30
+ caller_file_path= caller_file(skip+1)
31
+ return nil if caller_file_path.nil?
32
+
33
+ if !File.directory?(caller_file_path)
34
+ caller_file_path= caller_file_path.split(File::Separator)
35
+ caller_file_path.pop
36
+ caller_file_path= caller_file_path.join(File::Separator)
37
+ end
38
+
39
+ return caller_file_path
40
+
41
+ end
42
+
43
+ end
44
+ extend ObjectCallerEXT
45
+
2
46
  class << self
3
47
 
4
- def directory_path
5
- self.caller_folder
48
+ # you can give optional file names that will be searched for
49
+ def caller_root(*args)
50
+
51
+ what_can_be_in_the_root= %w[
52
+ gemfile Gemfile GemFile
53
+ rakefile Rakefile RakeFile
54
+ config.ru README.md LICENSE LICENSE.txt .gitignore ] + args.map{|e|e.to_s}
55
+
56
+ folder_path= caller_folder(1).split(File::Separator)
57
+
58
+ loop do
59
+
60
+ Dir.glob(File.join(folder_path.join(File::Separator),"*")).map do |element|
61
+ if !File.directory?(element)
62
+ if what_can_be_in_the_root.include? element.split(File::Separator).last
63
+ return folder_path.join(File::Separator)
64
+ end
65
+ else
66
+ if %W[ .git .bundler ].include? element.split(File::Separator).last
67
+ return folder_path.join(File::Separator)
68
+ end
69
+ end
70
+ end
71
+
72
+ if folder_path.count == 0
73
+ return nil
74
+ else
75
+ folder_path.pop
76
+ end
77
+
78
+ end
79
+
6
80
  end
7
81
 
8
- alias :directory :directory_path
82
+ alias :caller_root_folder :caller_root
9
83
 
10
84
  # gives you a basic meta load framework for easy config use (yaml)
11
85
  # basic system is
@@ -108,67 +182,6 @@ module Loader
108
182
 
109
183
  end
110
184
 
111
- def caller_folder integer_num= 1
112
-
113
- # path create from caller
114
- begin
115
- path= caller[integer_num].split(".{rb,ru}:").first.split(File::Separator)
116
- path= path[0..(path.count-2)]
117
- end
118
-
119
- # after formatting
120
- begin
121
-
122
- if !File.directory?(path.join(File::SEPARATOR))
123
- path.pop
124
- end
125
- path= File.join(path.join(File::SEPARATOR))
126
- if path != File.expand_path(path)
127
- path= File.expand_path(path)
128
- end
129
-
130
- end
131
-
132
- return path
133
-
134
- end
135
-
136
- # you can give optional file names that will be searched for
137
- def caller_root(*args)
138
-
139
- what_can_be_in_the_root= %w[
140
- gemfile Gemfile GemFile
141
- rakefile Rakefile RakeFile
142
- config.ru README.md LICENSE LICENSE.txt .gitignore ] + args.map{|e|e.to_s}
143
-
144
- folder_path= caller_folder(2).split(File::Separator)
145
-
146
- loop do
147
-
148
- Dir.glob(File.join(folder_path.join(File::Separator),"*")).map do |element|
149
- if !File.directory?(element)
150
- if what_can_be_in_the_root.include? element.split(File::Separator).last
151
- return folder_path.join(File::Separator)
152
- end
153
- else
154
- if %W[ .git .bundler ].include? element.split(File::Separator).last
155
- return folder_path.join(File::Separator)
156
- end
157
- end
158
- end
159
-
160
- if folder_path.count == 0
161
- return Dir.pwd
162
- else
163
- folder_path.pop
164
- end
165
-
166
- end
167
-
168
- end
169
-
170
- alias :caller_root_folder :caller_root
171
-
172
185
  # load meta folders rb files
173
186
  # by default it will be the caller objects root folder (app root)
174
187
  # else you must set with hand the path from your app root
@@ -257,4 +270,7 @@ module Loader
257
270
 
258
271
 
259
272
  end
260
- end
273
+
274
+ end
275
+
276
+ Object.__send__ :include, Loader::ObjectCallerEXT
@@ -1,6 +1,6 @@
1
1
  module Loader
2
2
 
3
- module ObjectEXT
3
+ module ObjectRequireEXT
4
4
 
5
5
  # Offline repo activate
6
6
  #def mount_modules(target_folder= File.join(Dir.pwd,"{module,modules}","{gem,gems}") )
@@ -49,4 +49,4 @@ module Loader
49
49
 
50
50
  end
51
51
 
52
- Object.__send__ :include, Loader::ObjectEXT
52
+ Object.__send__ :include, Loader::ObjectRequireEXT
data/test/sub/test2.rb ADDED
@@ -0,0 +1,4 @@
1
+
2
+
3
+ puts test
4
+ # test
data/test/test.rb CHANGED
@@ -0,0 +1,3 @@
1
+
2
+ # require_relative "../lib/loader"
3
+ require 'loader'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loader
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0.rc
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " dsl for gem helper calls such like relative folder calls that independ
14
14
  on the Dir.pwd or File.expand tricks and config loader stuffs, Check out the GIT! "
@@ -35,6 +35,7 @@ files:
35
35
  - lib/loader/meta.rb
36
36
  - lib/loader/require.rb
37
37
  - loader.gemspec
38
+ - test/sub/test2.rb
38
39
  - test/test.rb
39
40
  homepage: https://github.com/adamluzsi/loader
40
41
  licenses:
@@ -51,9 +52,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
52
  version: '0'
52
53
  required_rubygems_version: !ruby/object:Gem::Requirement
53
54
  requirements:
54
- - - ">="
55
+ - - ">"
55
56
  - !ruby/object:Gem::Version
56
- version: '0'
57
+ version: 1.3.1
57
58
  requirements: []
58
59
  rubyforge_project:
59
60
  rubygems_version: 2.2.2
@@ -61,4 +62,5 @@ signing_key:
61
62
  specification_version: 4
62
63
  summary: DSL for helping make file require easy just like build configuration objects
63
64
  test_files:
65
+ - test/sub/test2.rb
64
66
  - test/test.rb