loader 1.0.6 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWExNGYyNjExODZjMGE0MGE4MTE1N2U1YzhjZDM3YTU4MmQ3ZDg1ZQ==
5
- data.tar.gz: !binary |-
6
- NTFiNjFkOTNhYjkzNDk0YzA1YzgzYjgwOTIzNmY1YjgyZDM3YjYxYg==
2
+ SHA1:
3
+ metadata.gz: 953abadad958da2a6f0da25272c967c0cb71fa79
4
+ data.tar.gz: 959c1dbd1744ea681eb2b61dbb4d9085c4ad6bf8
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZmNiYTNkNmE0ZDY2NTJhZjNiMDM0M2IxODI0NmIyZjg1MzU1NjQ3NmE2YmVi
10
- MGE2Yzk0NDkxMWZhNzIzYjJkNWM4NDk2OWQwMjBiOTkzZTQ1ODRiYWRjNTE4
11
- ZmIzZjMyNTdmODQxYWJjMDhiN2RiOWVjOGQ3MzcxMzA0MjQ1NzA=
12
- data.tar.gz: !binary |-
13
- NDI1MmRhM2UyNTcyMjE5OTVhZjY5MWU0YzlmODU5NTgxYWQ3MzBmMDc0NjBk
14
- NjJmYTViZWFhNDI2ODYyOWNiMzYwNzZhMTIzZjc5NzJhNGJhNmRlYjU5MmNi
15
- MzBjYjQ4NTA5NmI5Y2EyOTM5M2JjMGU5OGE5NTEwMWUzMDhiYjk=
6
+ metadata.gz: 53f3d8e787831bafb04187b21ff0f84c246528c4e8185ea029bd2a83bcfbb887574a8567d3cff41144d88c4ff05ef0d534123fcfaacffb6c74141e0f1bdfe489
7
+ data.tar.gz: 5e1d9e3c8a6e43cb93b2715d8e85c948f56d77fb798672f3d999abd2234369b3b9c37d1246851a3fade036fcef373402c01b3916797a95b3864e64459a15e2df
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/README.md CHANGED
@@ -7,20 +7,31 @@ Meta config file loaders and much more
7
7
  ### Introduction
8
8
 
9
9
  Okey, before you even think about use this gem, let's say this gem only for lazy ones...
10
- the basic idea is to have an easy to use relative require system with yaml config file loading
11
- into a constant, maybe into some othere config specific gem that make config objects from hash.
10
+ the basic idea is to have an easy to use relative require system
11
+ The plus is a yaml config file loading mechanism for picking up yamls
12
+ into a constant,
13
+ maybe into some other config specific gem that make config objects from hash.
12
14
 
13
15
  The fun part is , that this stuffs can be used in making a new gem,
14
16
  because it do not depend on the Dir.pwd or
15
17
  the File Expand tricks
16
18
 
19
+ The end goal is to make an easy ruby file loader for gems. So Dir.pwd do not affect
20
+
17
21
  the use cases are hell simple , like:
18
22
 
23
+ ```ruby
24
+
19
25
  # return and load the meta files from
20
26
  # the lib/**/meta and return the hash obj build from the yamls
21
27
  Loader.meta
22
28
 
23
- # load all rb file that was not loaded already
29
+ # load all ruby file that was not loaded already
24
30
  # from that relative folder
25
31
  require_relative_directory "folder_name"
26
32
 
33
+ # for recursive use try the following
34
+ require_directory "lib", :r
35
+ #> require_directory is an alias for require_relative_directory
36
+
37
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.6
1
+ 1.1.0
@@ -18,4 +18,7 @@ puts Loader.meta absolute: File.expand_path(File.join(File.dirname(__FILE__),"li
18
18
  #> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
19
19
 
20
20
  puts Loader.metaloader_framework root: File.expand_path(File.dirname(__FILE__))
21
- #> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
21
+ #> {"asdf"=>{"else"=>{"world"=>"hello"}, "stuff"=>{"hello"=>"world"}}}
22
+
23
+ require_directory "lib", :r #> recursive
24
+ #> hello world! from stuff.rb
data/files.rb CHANGED
@@ -3,7 +3,9 @@ begin
3
3
 
4
4
  files_to_be_loaded = %w[version.rb]
5
5
 
6
- SpecFiles= Array.new
6
+ module Loader
7
+ SpecFiles= Array.new
8
+ end
7
9
 
8
10
  Dir[File.expand_path(File.join(File.dirname(__FILE__),"**","*"))].sort.uniq.each do |one_file_name|
9
11
  one_file_name = File.expand_path one_file_name
@@ -11,11 +13,13 @@ begin
11
13
 
12
14
  if !one_file_name.include?("pkg")
13
15
  if !File.directory? file_name
14
- SpecFiles.push file_name
15
- STDOUT.puts file_name if $DEBUG
16
+
17
+ Loader::SpecFiles.push file_name
18
+
16
19
  if files_to_be_loaded.include? one_file_name.split(File::SEPARATOR).last
17
20
  load one_file_name
18
21
  end
22
+
19
23
  end
20
24
  end
21
25
 
data/lib/loader/array.rb CHANGED
@@ -1,4 +1,5 @@
1
- class Array
1
+ module Loader
2
+ module ArrayEXT
2
3
 
3
4
  # generate params structure from array
4
5
  # return_array
@@ -19,4 +20,7 @@ class Array
19
20
 
20
21
  end unless method_defined? :extract_class!
21
22
 
22
- end
23
+ end
24
+ end
25
+
26
+ Array.__send__ :include, Loader::ArrayEXT
data/lib/loader/hash.rb CHANGED
@@ -1,25 +1,29 @@
1
- class Hash
1
+ module Loader
2
+ module HashEXT
2
3
 
3
- # Returns a new hash with +self+ and +other_hash+ merged recursively.
4
- #
5
- # h1 = {:x => {:y => [4,5,6]}, :z => [7,8,9]}
6
- # h2 = {:x => {:y => [7,8,9]}, :z => "xyz"}
7
- #
8
- # h1.deep_merge(h2) #=> { :x => {:y => [7, 8, 9]}, :z => "xyz" }
9
- # h2.deep_merge(h1) #=> { :x => {:y => [4, 5, 6]}, :z => [7, 8, 9] }
10
- def deep_merge(other_hash)
11
- dup.deep_merge!(other_hash)
12
- end unless method_defined? :deep_merge
4
+ # Returns a new hash with +self+ and +other_hash+ merged recursively.
5
+ #
6
+ # h1 = {:x => {:y => [4,5,6]}, :z => [7,8,9]}
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
13
14
 
14
- alias :+ :deep_merge unless method_defined? :deep_merge
15
+ alias :+ :deep_merge unless method_defined? :deep_merge
15
16
 
16
- # Same as +deep_merge+, but modifies +self+.
17
- def deep_merge!(other_hash)
18
- other_hash.each_pair do |k,v|
19
- tv = self[k]
20
- self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
17
+ # Same as +deep_merge+, but modifies +self+.
18
+ def deep_merge!(other_hash)
19
+ other_hash.each_pair do |k,v|
20
+ tv = self[k]
21
+ self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
22
+ end
23
+ self
21
24
  end
22
- self
23
- end unless method_defined? :deep_merge!
24
25
 
25
- end
26
+ end
27
+ end
28
+
29
+ Hash.__send__ :include, Loader::HashEXT
data/lib/loader/meta.rb CHANGED
@@ -139,7 +139,7 @@ module Loader
139
139
  what_can_be_in_the_root= %w[
140
140
  gemfile Gemfile GemFile
141
141
  rakefile Rakefile RakeFile
142
- config.ru README.md ] + args.map{|e|e.to_s}
142
+ config.ru README.md LICENSE LICENSE.txt .gitignore ] + args.map{|e|e.to_s}
143
143
 
144
144
  folder_path= caller_folder(2).split(File::Separator)
145
145
 
@@ -150,13 +150,17 @@ module Loader
150
150
  if what_can_be_in_the_root.include? element.split(File::Separator).last
151
151
  return folder_path.join(File::Separator)
152
152
  end
153
+ else
154
+ if %W[ .git .bundler ].include? element.split(File::Separator).last
155
+ return folder_path.join(File::Separator)
156
+ end
153
157
  end
154
158
  end
155
159
 
156
- if folder_path.count != 0
157
- folder_path.pop
160
+ if folder_path.count == 0
161
+ return Dir.pwd
158
162
  else
159
- return nil
163
+ folder_path.pop
160
164
  end
161
165
 
162
166
  end
@@ -1,28 +1,47 @@
1
- module Kernel
1
+ module Loader
2
2
 
3
- # Offline repo activate
4
- #def mount_modules(target_folder= File.join(Dir.pwd,"{module,modules}","{gem,gems}") )
5
- # Dir.glob(File.join(target_folder,"**","lib")).select{|f| File.directory?(f)}.each do |one_path|
6
- # $LOAD_PATH.unshift one_path
7
- # end
8
- #end
3
+ module ObjectEXT
9
4
 
10
- # require sender relative directory's files
11
- # return the directory and the sub directories file names (rb/ru)
12
- def require_relative_directory(folder)
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
13
11
 
14
- unless folder.to_s[0] == File::Separator
15
- folder= Loader.caller_folder,folder
16
- end
12
+ # require sender relative directory's files
13
+ # return the directory and the sub directories file names (rb/ru)
14
+ def require_relative_directory( folder, *args )
15
+
16
+ recursive= nil
17
+ [:recursive,:r, :R, 'r', 'R', '-r', '-R'].each{|e| args.include?(e) ? recursive ||= true : nil }
18
+
19
+ # opts[:extension] ||= opts[:extensions] || opts[:ex] || opts[:e] || []
20
+ # raise(ArgumentError,"invalid extension object, must be array like") unless opts[:extension].class <= Array
21
+
22
+ unless folder.to_s[0] == File::Separator
23
+ folder= Loader.caller_folder,folder
24
+ end
25
+
26
+ path_parts= [folder]
27
+ if recursive
28
+ path_parts.push("**")
29
+ end
30
+ path_parts.push("*.{rb,ru}")
31
+
32
+
33
+ return_value= false
34
+ Dir.glob(File.join(*path_parts)).each do |one_path|
35
+ require(one_path) ? return_value=( true ) : nil
36
+ end
17
37
 
18
- Dir.glob(File.join(folder,"**","*.{rb,ru}")).each do |one_path|
19
- require one_path
38
+ return return_value
20
39
  end
21
40
 
22
- return nil
41
+ alias :require_directory :require_relative_directory
23
42
 
24
43
  end
25
44
 
26
- alias :require_directory :require_relative_directory
45
+ end
27
46
 
28
- end
47
+ Object.__send__ :include, Loader::ObjectEXT
data/loader.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- require File.expand_path(File.join(File.dirname(__FILE__),"files.rb"))
3
+ # require File.expand_path(File.join(File.dirname(__FILE__),"files.rb"))
4
4
 
5
5
  ### Specification for the new Gem
6
6
  Gem::Specification.new do |spec|
@@ -10,13 +10,14 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Adam Luzsi"]
11
11
  spec.email = ["adamluzsi@gmail.com"]
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
- spec.summary = %q{DSL for helping make file loads and configuration objects }
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
15
  spec.license = "MIT"
16
16
 
17
- spec.files = SpecFiles
17
+ spec.files = `git ls-files`.split($/)
18
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+
20
21
  spec.require_paths = ["lib"]
21
22
 
22
23
  end
metadata CHANGED
@@ -1,23 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loader
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.0
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-03-03 00:00:00.000000000 Z
11
+ date: 2014-04-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: ! ' dsl for gem helper calls such like relative folder calls that independ
14
- on the Dir.pwd or File.expand tricks and config loader stuffs, Check out the GIT! '
13
+ description: " dsl for gem helper calls such like relative folder calls that independ
14
+ on the Dir.pwd or File.expand tricks and config loader stuffs, Check out the GIT! "
15
15
  email:
16
16
  - adamluzsi@gmail.com
17
17
  executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - ".gitignore"
21
22
  - Gemfile
22
23
  - LICENSE
23
24
  - README.md
@@ -45,20 +46,19 @@ require_paths:
45
46
  - lib
46
47
  required_ruby_version: !ruby/object:Gem::Requirement
47
48
  requirements:
48
- - - ! '>='
49
+ - - ">="
49
50
  - !ruby/object:Gem::Version
50
51
  version: '0'
51
52
  required_rubygems_version: !ruby/object:Gem::Requirement
52
53
  requirements:
53
- - - ! '>='
54
+ - - ">="
54
55
  - !ruby/object:Gem::Version
55
56
  version: '0'
56
57
  requirements: []
57
58
  rubyforge_project:
58
- rubygems_version: 2.2.1
59
+ rubygems_version: 2.2.2
59
60
  signing_key:
60
61
  specification_version: 4
61
- summary: DSL for helping make file loads and configuration objects
62
+ summary: DSL for helping make file require easy just like build configuration objects
62
63
  test_files:
63
64
  - test/test.rb
64
- has_rdoc: