loader 1.2.6 → 1.3.1
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 +4 -4
- data/Gemfile +1 -1
- data/LICENSE +17 -17
- data/README.md +8 -3
- data/VERSION +1 -1
- data/examples/lib/asdf/level2.rb +1 -0
- data/examples/lib/asdf/meta/level3.rb +1 -0
- data/examples/lib/level1_1.rb +1 -0
- data/examples/lib/level1_2.rb +1 -0
- data/examples/meta.rb +18 -0
- data/examples/simple_require.rb +3 -20
- data/lib/loader.rb +0 -1
- data/lib/loader/hash.rb +12 -22
- data/lib/loader/meta.rb +6 -3
- data/lib/loader/require.rb +21 -30
- data/loader.gemspec +0 -1
- metadata +8 -6
- data/examples/lib/asdf/stuff.rb +0 -1
- data/lib/loader/array.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: baa86c000a57bb154c384914994c745e77644ab0
|
4
|
+
data.tar.gz: 24193f8d91aae65f61f442d31af73d2c76dd0c46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8b8356364117953e9d8df97118aac1f00ae004d9ee5e6037370e7bbc5058f3538fb55f376abc5b07dc54334e4e1fe7cb7c143f367fbd188df3131768eaa901d
|
7
|
+
data.tar.gz: bf5f3705405f2c3f5807128cd410e8f89ff9fd8094c9fa4aaa13e81dce3355c57527289bafe3f2e706fa8606430f67a849ed10f0ebbe1343dc420f17cbbe8718
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
2
|
gemspec
|
data/LICENSE
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
|
1
|
+
Copyright (c) 2013 Adam Luzsi
|
2
2
|
|
3
|
-
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
4
10
|
|
5
|
-
|
6
|
-
|
7
|
-
the Software without restriction, including without limitation the rights to
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
-
subject to the following conditions:
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -20,7 +20,8 @@ The end goal is to make an easy ruby file loader for gems. So Dir.pwd do not aff
|
|
20
20
|
|
21
21
|
### Examples
|
22
22
|
|
23
|
-
load relative directory (not based on Dir.pwd)
|
23
|
+
load relative directory (not based on Dir.pwd but the caller files position)
|
24
|
+
if you pass multiple string as argument it will be joined by file separator that the OS use
|
24
25
|
|
25
26
|
```ruby
|
26
27
|
|
@@ -32,12 +33,16 @@ load relative directory (not based on Dir.pwd)
|
|
32
33
|
|
33
34
|
# for recursive use try the following
|
34
35
|
require_relative_directory "lib", :r
|
35
|
-
|
36
|
+
|
37
|
+
# or
|
36
38
|
require_relative_directory_r "lib"
|
37
39
|
|
40
|
+
# or
|
41
|
+
require_relative_directory "lib",r: true
|
42
|
+
|
38
43
|
```
|
39
44
|
|
40
|
-
Additional Syntax for caller
|
45
|
+
Additional Syntax for caller magics
|
41
46
|
|
42
47
|
```ruby
|
43
48
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.1
|
@@ -0,0 +1 @@
|
|
1
|
+
puts __FILE__
|
@@ -0,0 +1 @@
|
|
1
|
+
puts __FILE__
|
@@ -0,0 +1 @@
|
|
1
|
+
puts __FILE__
|
@@ -0,0 +1 @@
|
|
1
|
+
puts __FILE__
|
data/examples/meta.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative "../lib/loader"
|
2
|
+
|
3
|
+
puts Loader.meta "examples","lib","**","meta"
|
4
|
+
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
5
|
+
|
6
|
+
puts Loader.meta root: File.expand_path(File.dirname(__FILE__))
|
7
|
+
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
8
|
+
|
9
|
+
|
10
|
+
puts Loader.meta "lib","**","meta",
|
11
|
+
root: File.expand_path(File.dirname(__FILE__))
|
12
|
+
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
13
|
+
|
14
|
+
puts Loader.meta absolute: File.expand_path(File.join(File.dirname(__FILE__),"lib","**","meta"))
|
15
|
+
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
16
|
+
|
17
|
+
puts Loader.metaloader_framework root: File.expand_path(File.dirname(__FILE__))
|
18
|
+
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
data/examples/simple_require.rb
CHANGED
@@ -1,24 +1,7 @@
|
|
1
1
|
require_relative "../lib/loader"
|
2
2
|
|
3
|
+
#> require the ruby files from lib
|
3
4
|
require_directory "lib"
|
4
|
-
# one of the file has a "puts \"hello world!\"" that will run on load
|
5
|
-
#> hello world!
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
puts Loader.meta root: File.expand_path(File.dirname(__FILE__))
|
11
|
-
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
12
|
-
|
13
|
-
puts Loader.meta "lib","**","meta",
|
14
|
-
root: File.expand_path(File.dirname(__FILE__))
|
15
|
-
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
16
|
-
|
17
|
-
puts Loader.meta absolute: File.expand_path(File.join(File.dirname(__FILE__),"lib","**","meta"))
|
18
|
-
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
19
|
-
|
20
|
-
puts Loader.metaloader_framework root: File.expand_path(File.dirname(__FILE__))
|
21
|
-
#> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
|
22
|
-
|
23
|
-
require_directory "lib", :r #> recursive
|
24
|
-
#> hello world! from stuff.rb
|
6
|
+
#> require the ruby files from and under to lib (recursive)
|
7
|
+
require_directory_r "lib"
|
data/lib/loader.rb
CHANGED
@@ -3,7 +3,6 @@ module Loader
|
|
3
3
|
|
4
4
|
require "yaml"
|
5
5
|
|
6
|
-
require File.join(File.dirname(__FILE__),"loader","array")
|
7
6
|
require File.join(File.dirname(__FILE__),"loader","hash")
|
8
7
|
require File.join(File.dirname(__FILE__),"loader","meta")
|
9
8
|
require File.join(File.dirname(__FILE__),"loader","require")
|
data/lib/loader/hash.rb
CHANGED
@@ -1,29 +1,19 @@
|
|
1
1
|
module Loader
|
2
2
|
module HashEXT
|
3
|
+
class << self
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
# h2 = {:x => {:y => [7,8,9]}, :z => "xyz"}
|
8
|
-
#
|
9
|
-
# h1.deep_merge(h2) #=> { :x => {:y => [7, 8, 9]}, :z => "xyz" }
|
10
|
-
# h2.deep_merge(h1) #=> { :x => {:y => [4, 5, 6]}, :z => [7, 8, 9] }
|
11
|
-
def deep_merge(other_hash)
|
12
|
-
dup.deep_merge!(other_hash)
|
13
|
-
end
|
14
|
-
|
15
|
-
alias :+ :deep_merge unless method_defined? :deep_merge
|
5
|
+
def deep_merge(self_hash,other_hash)
|
6
|
+
deep_merge!(self_hash.dup,other_hash)
|
7
|
+
end
|
16
8
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
9
|
+
def deep_merge!(self_hash,other_hash)
|
10
|
+
other_hash.each_pair do |k,v|
|
11
|
+
tv = self_hash[k]
|
12
|
+
self_hash[k] = tv.is_a?(::Hash) && v.is_a?(::Hash) ? deep_merge(tv,v) : v
|
13
|
+
end
|
14
|
+
self_hash
|
22
15
|
end
|
23
|
-
self
|
24
|
-
end
|
25
16
|
|
17
|
+
end
|
26
18
|
end
|
27
|
-
end
|
28
|
-
|
29
|
-
Hash.__send__ :include, Loader::HashEXT
|
19
|
+
end
|
data/lib/loader/meta.rb
CHANGED
@@ -108,7 +108,7 @@ module Loader
|
|
108
108
|
|
109
109
|
end
|
110
110
|
|
111
|
-
|
111
|
+
HashEXT.deep_merge! target_config_hash, Loader.meta( absolute: lib_folder )
|
112
112
|
|
113
113
|
# update by config
|
114
114
|
begin
|
@@ -157,7 +157,7 @@ module Loader
|
|
157
157
|
config_yaml_paths.each do |one_yaml_file_path|
|
158
158
|
begin
|
159
159
|
yaml_data= YAML.load(File.open(one_yaml_file_path))
|
160
|
-
|
160
|
+
HashEXT.deep_merge!(target_config_hash,yaml_data)
|
161
161
|
|
162
162
|
unless environment.nil?
|
163
163
|
if one_yaml_file_path.include?(environment.to_s)
|
@@ -197,7 +197,10 @@ module Loader
|
|
197
197
|
# yaml file name as key and the folder as the category
|
198
198
|
def meta( *args )
|
199
199
|
|
200
|
-
options= args.
|
200
|
+
options= args.select{|e|(e.class <= ::Hash)}
|
201
|
+
args -= options
|
202
|
+
options= Hash[*options]
|
203
|
+
|
201
204
|
options ||= {}
|
202
205
|
|
203
206
|
if options[:absolute].nil?
|
data/lib/loader/require.rb
CHANGED
@@ -2,51 +2,42 @@ module Loader
|
|
2
2
|
|
3
3
|
module ObjectRequireEXT
|
4
4
|
|
5
|
-
# Offline repo activate
|
6
|
-
#def mount_modules(target_folder= File.join(Dir.pwd,"{module,modules}","{gem,gems}") )
|
7
|
-
# Dir.glob(File.join(target_folder,"**","lib")).select{|f| File.directory?(f)}.each do |one_path|
|
8
|
-
# $LOAD_PATH.unshift one_path
|
9
|
-
# end
|
10
|
-
#end
|
11
|
-
|
12
5
|
# require sender relative directory's files
|
13
6
|
# return the directory and the sub directories file names (rb/ru)
|
14
|
-
def require_relative_directory
|
7
|
+
def require_relative_directory *args
|
8
|
+
|
9
|
+
folder= args.select{|e|(e.class <= ::String)}.join(File::Separator)
|
10
|
+
opts= Hash[*args.select{|e|(e.class <= ::Hash)}]
|
11
|
+
args= args.select{|e|(e.class <= ::Symbol)}
|
15
12
|
|
16
|
-
recursive
|
17
|
-
[:recursive
|
13
|
+
opts[:recursive] ||= opts.delete(:r) || opts.delete(:R) || !([:recursive,:r, :R,].select{|e| args.include?(e)}.empty?)
|
14
|
+
opts[:recursive] = !!opts[:recursive]
|
18
15
|
|
19
|
-
|
20
|
-
# raise(ArgumentError,"invalid extension object, must be array like") unless opts[:extension].class <= Array
|
16
|
+
opts[:caller_folder] ||= opts.delete(:f) || opts.delete(:folder) || Loader.caller_folder
|
21
17
|
|
22
18
|
unless folder.to_s[0] == File::Separator
|
23
|
-
folder= [
|
19
|
+
folder= [opts[:caller_folder],folder]
|
24
20
|
end
|
25
21
|
|
26
|
-
|
27
|
-
|
28
|
-
path_parts
|
22
|
+
#> recursive option
|
23
|
+
begin
|
24
|
+
path_parts= [*folder]
|
25
|
+
if opts[:recursive]
|
26
|
+
path_parts.push("**")
|
27
|
+
end
|
28
|
+
path_parts.push("*.{rb,ru}")
|
29
29
|
end
|
30
|
-
path_parts.push("*.{rb,ru}")
|
31
30
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
31
|
+
return Dir.glob(File.join(*path_parts)).sort_by{|e| e.split(File::Separator).size }.map { |one_path|
|
32
|
+
require(one_path)
|
33
|
+
}.include?(true)
|
36
34
|
|
37
|
-
return return_value
|
38
35
|
end
|
39
36
|
|
40
37
|
alias :require_directory :require_relative_directory
|
41
38
|
|
42
|
-
def require_relative_directory_r
|
43
|
-
|
44
|
-
unless folder.to_s[0] == File::Separator
|
45
|
-
folder= File.join(Loader.caller_folder,folder)
|
46
|
-
end
|
47
|
-
|
48
|
-
require_relative_directory folder,:r
|
49
|
-
|
39
|
+
def require_relative_directory_r *args
|
40
|
+
require_relative_directory *args, r: true, f: Loader.caller_folder
|
50
41
|
end
|
51
42
|
alias :require_directory_r :require_relative_directory_r
|
52
43
|
|
data/loader.gemspec
CHANGED
@@ -12,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = %q{ dsl for gem helper calls such like relative folder calls that independ on the Dir.pwd or File.expand tricks and config loader stuffs, Check out the GIT! }
|
13
13
|
spec.summary = %q{DSL for helping make file require easy just like build configuration objects }
|
14
14
|
spec.homepage = "https://github.com/adamluzsi/loader"
|
15
|
-
spec.license = "MIT"
|
16
15
|
|
17
16
|
spec.files = `git ls-files`.split($/)
|
18
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
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.
|
4
|
+
version: 1.3.1
|
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-05-
|
11
|
+
date: 2014-05-08 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! "
|
@@ -24,13 +24,16 @@ files:
|
|
24
24
|
- README.md
|
25
25
|
- Rakefile
|
26
26
|
- VERSION
|
27
|
+
- examples/lib/asdf/level2.rb
|
27
28
|
- examples/lib/asdf/meta/else.yml
|
29
|
+
- examples/lib/asdf/meta/level3.rb
|
28
30
|
- examples/lib/asdf/meta/stuff.yml
|
29
|
-
- examples/lib/
|
31
|
+
- examples/lib/level1_1.rb
|
32
|
+
- examples/lib/level1_2.rb
|
33
|
+
- examples/meta.rb
|
30
34
|
- examples/simple_require.rb
|
31
35
|
- files.rb
|
32
36
|
- lib/loader.rb
|
33
|
-
- lib/loader/array.rb
|
34
37
|
- lib/loader/hash.rb
|
35
38
|
- lib/loader/meta.rb
|
36
39
|
- lib/loader/require.rb
|
@@ -38,8 +41,7 @@ files:
|
|
38
41
|
- test/sub/test2.rb
|
39
42
|
- test/test.rb
|
40
43
|
homepage: https://github.com/adamluzsi/loader
|
41
|
-
licenses:
|
42
|
-
- MIT
|
44
|
+
licenses: []
|
43
45
|
metadata: {}
|
44
46
|
post_install_message:
|
45
47
|
rdoc_options: []
|
data/examples/lib/asdf/stuff.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
puts "hello world!"
|
data/lib/loader/array.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Loader
|
2
|
-
module ArrayEXT
|
3
|
-
|
4
|
-
# generate params structure from array
|
5
|
-
# return_array
|
6
|
-
def extract_class! class_name
|
7
|
-
|
8
|
-
if class_name.class != Class
|
9
|
-
raise ArgumentError, "parameter must be a class name"
|
10
|
-
end
|
11
|
-
|
12
|
-
return_value= self.map { |element|
|
13
|
-
if element.class == class_name
|
14
|
-
element
|
15
|
-
end
|
16
|
-
}.uniq - [ nil ]
|
17
|
-
return_value.each{|e| self.delete(e) }
|
18
|
-
|
19
|
-
return return_value
|
20
|
-
|
21
|
-
end unless method_defined? :extract_class!
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
Array.__send__ :include, Loader::ArrayEXT
|