loader 2.1.0 → 2.2.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/VERSION +1 -1
- data/lib/loader.rb +1 -1
- data/lib/loader/autoload.rb +6 -94
- data/lib/loader/autoload/fetcher.rb +55 -0
- data/lib/loader/autoload/loader_patch.rb +12 -0
- data/lib/loader/autoload/module_patch.rb +10 -0
- data/lib/loader/helpers.rb +27 -0
- data/lib/loader/require.rb +48 -50
- data/loader.gemspec +3 -0
- data/spec/loader/helpers_spec.rb +51 -0
- data/spec/spec_helper.rb +4 -0
- data/test/manual_test.rb +7 -0
- data/test/test_autoload.rb +1 -1
- metadata +42 -6
- data/.idea/.rakeTasks +0 -7
- data/.idea/loader.iml +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02599efb933b64f6bd6b100181f487c1dc7bf78d
|
4
|
+
data.tar.gz: ddd99341ee26528275ab5e833e86557f1c4f28a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc9b57c5be9f33c5655293f1126233583fca686d63729bd42c5581c8c1b084dfa743bb46605fcd64e4678c74ebe47dddad2f45ab50646121c54c9211052e8d8f
|
7
|
+
data.tar.gz: 530795f8061e254d6507eb4de1d0d086e818e769849ddd80cedaee4799a93aaf029f43548f6495f48d2c4e3143f7dfaef72f2c17ce0523784828bce1336247d7
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.2.1
|
data/lib/loader.rb
CHANGED
data/lib/loader/autoload.rb
CHANGED
@@ -1,95 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
def pwd
|
8
|
-
if !!ENV['BUNDLE_GEMFILE']
|
9
|
-
ENV['BUNDLE_GEMFILE'].split(File::Separator)[0..-2].join(File::Separator)
|
10
|
-
elsif defined?(Rails) && Rails.respond_to?(:root) && Rails.root
|
11
|
-
Rails.root.to_s
|
12
|
-
else
|
13
|
-
Dir.pwd
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def try_load_by(caller_class,name)
|
18
|
-
levels = generate_levels(caller_class, name)
|
19
|
-
[
|
20
|
-
nil,
|
21
|
-
'lib',
|
22
|
-
File.join('{application,app,api}','*'),
|
23
|
-
File.join('**','*')
|
24
|
-
].each do |folder|
|
25
|
-
return if load_by_folder(levels,folder)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def load_by_folder(levels,folder=nil)
|
30
|
-
|
31
|
-
desc_ary(levels.map{|str| File.join(*[pwd,folder,"#{underscore(str)}.rb"].compact)}).each do |path_constructor|
|
32
|
-
desc_ary(Dir.glob(path_constructor)).each do |path|
|
33
|
-
return true if File.exist?(path) && require(path)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
return false
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
def desc_ary(array)
|
42
|
-
array.sort{|a,b| b.length <=> a.length }
|
43
|
-
end
|
44
|
-
|
45
|
-
def generate_levels(klass, name)
|
46
|
-
levels = klass.to_s.split('::').reduce([]) { |m, c|
|
47
|
-
m << [(last_obj = m.last), c].compact.join('::');m
|
48
|
-
}.map { |str| [str, name].join('::') }
|
49
|
-
levels.unshift(name.to_s)
|
50
|
-
return levels
|
51
|
-
end
|
52
|
-
|
53
|
-
def try_fetch_constant(caller_class, name)
|
54
|
-
levels = Support.generate_levels(caller_class, name).map { |str| Regexp.escape(str) }
|
55
|
-
ObjectSpace.each_object(Module) { |obj|
|
56
|
-
if !!(obj.to_s =~ /^(#{levels.join('|')})$/)
|
57
|
-
return obj
|
58
|
-
end
|
59
|
-
};nil
|
60
|
-
end
|
61
|
-
|
62
|
-
# Based on ActiveSupport, removed inflections.
|
63
|
-
# https://github.com/rails/rails/blob/v4.1.0.rc1/activesupport/lib/active_support/inflector/methods.rb
|
64
|
-
def underscore(camel_cased_word)
|
65
|
-
word = camel_cased_word.to_s.gsub('::', '/')
|
66
|
-
word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
|
67
|
-
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
68
|
-
word.tr!("-", "_")
|
69
|
-
word.downcase!
|
70
|
-
word
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def const_missing(name)
|
77
|
-
|
78
|
-
Support.try_load_by(self,name)
|
79
|
-
constant = Support.try_fetch_constant(self, name)
|
80
|
-
|
81
|
-
if constant
|
82
|
-
return constant
|
83
|
-
else
|
84
|
-
super
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
def self.autoload
|
92
|
-
::Module.__send__(:prepend,Loader::AutoLoad)
|
93
|
-
end
|
94
|
-
|
1
|
+
require 'loader'
|
2
|
+
module Loader::AutoLoad
|
3
|
+
require 'loader/autoload/module_patch'
|
4
|
+
require 'loader/autoload/loader_patch'
|
5
|
+
require 'loader/autoload/fetcher'
|
6
|
+
Loader.__send__(:extend,Loader::AutoLoad::LoaderPatch)
|
95
7
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Loader::AutoLoad::Fetcher
|
2
|
+
|
3
|
+
extend self
|
4
|
+
extend ::Loader::Helpers
|
5
|
+
|
6
|
+
def try_load_by(caller_class, name)
|
7
|
+
levels = generate_levels(caller_class, name)
|
8
|
+
[
|
9
|
+
nil,
|
10
|
+
'lib',
|
11
|
+
File.join('{application,app,api}', '*'),
|
12
|
+
File.join('**', '*')
|
13
|
+
].each do |folder|
|
14
|
+
return if load_by_folder(levels, folder)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def load_by_folder(levels, folder=nil)
|
19
|
+
|
20
|
+
Loader.project_folders.each do |project_folder|
|
21
|
+
|
22
|
+
desc_ary(levels.map { |str| File.join(*[project_folder, folder, "#{underscore(str)}.rb"].compact) }).each do |path_constructor|
|
23
|
+
desc_ary(Dir.glob(path_constructor)).each do |path|
|
24
|
+
return true if File.exist?(path) && require(path)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
return false
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def desc_ary(array)
|
35
|
+
array.sort { |a, b| b.length <=> a.length }
|
36
|
+
end
|
37
|
+
|
38
|
+
def generate_levels(klass, name)
|
39
|
+
levels = klass.to_s.split('::').reduce([]) { |m, c|
|
40
|
+
m << [(last_obj = m.last), c].compact.join('::'); m
|
41
|
+
}.map { |str| [str, name].join('::') }
|
42
|
+
levels.unshift(name.to_s)
|
43
|
+
return levels
|
44
|
+
end
|
45
|
+
|
46
|
+
def try_fetch_constant(caller_class, name)
|
47
|
+
levels = generate_levels(caller_class, name).map { |str| Regexp.escape(str) }
|
48
|
+
ObjectSpace.each_object(Module) { |obj|
|
49
|
+
if !!(obj.to_s =~ /^(#{levels.join('|')})$/)
|
50
|
+
return obj
|
51
|
+
end
|
52
|
+
}; nil
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Loader::AutoLoad::LoaderPatch
|
2
|
+
|
3
|
+
def project_folders
|
4
|
+
@project_folders ||= []
|
5
|
+
end
|
6
|
+
|
7
|
+
def autoload(project_folder=Loader::Helpers.pwd)
|
8
|
+
project_folders.push(project_folder)
|
9
|
+
::Module.__send__(:prepend, Loader::AutoLoad::ModulePatch)
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'loader'
|
2
|
+
module Loader::Helpers
|
3
|
+
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def pwd
|
7
|
+
if !!ENV['BUNDLE_GEMFILE']
|
8
|
+
ENV['BUNDLE_GEMFILE'].split(File::Separator)[0..-2].join(File::Separator)
|
9
|
+
elsif defined?(Rails) && Rails.respond_to?(:root) && Rails.root
|
10
|
+
Rails.root.to_s
|
11
|
+
else
|
12
|
+
Dir.pwd
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Based on ActiveSupport, removed inflections.
|
17
|
+
# https://github.com/rails/rails/blob/v4.1.0.rc1/activesupport/lib/active_support/inflector/methods.rb
|
18
|
+
def underscore(camel_cased_word)
|
19
|
+
word = camel_cased_word.to_s.gsub('::', '/')
|
20
|
+
word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
|
21
|
+
word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
|
22
|
+
word.tr!("-", "_")
|
23
|
+
word.downcase!
|
24
|
+
word
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/loader/require.rb
CHANGED
@@ -1,76 +1,74 @@
|
|
1
|
-
|
1
|
+
require 'loader'
|
2
|
+
module Loader::ObjectExtension
|
2
3
|
|
3
|
-
|
4
|
+
# require sender relative directory's files
|
5
|
+
# return the directory and the sub directories file names (rb/ru)
|
6
|
+
def require_relative_directory(*args)
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
+
folder= args.select { |e| (e.class <= ::String) }.join(File::Separator)
|
9
|
+
opts= {}
|
10
|
+
args.select { |e| (e.class <= ::Hash) }.each { |hash| hash.each { |sk, sv| opts[sk]=sv } }
|
11
|
+
args.select! { |e| (e.class <= ::Symbol) }
|
8
12
|
|
9
|
-
|
10
|
-
|
11
|
-
args.select{|e|(e.class <= ::Hash)}.each{|hash| hash.each{|sk,sv| opts[sk]=sv } }
|
12
|
-
args.select!{|e|(e.class <= ::Symbol)}
|
13
|
+
opts[:recursive] ||= opts.delete(:r) || opts.delete(:R) || !([:recursive, :r, :R,].select { |e| args.include?(e) }.empty?)
|
14
|
+
opts[:recursive] = !!opts[:recursive]
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
# inclusion and exclusion
|
17
|
+
[[:exclude, [:ex, :e, :EX, :E]], [:include, [:in, :i, :IN, :I]]].each do |name, aliases|
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
aliases.each do |one_alias|
|
21
|
-
opts[name] ||= opts.delete(one_alias)
|
22
|
-
end
|
19
|
+
aliases.each do |one_alias|
|
20
|
+
opts[name] ||= opts.delete(one_alias)
|
21
|
+
end
|
23
22
|
|
24
|
-
|
23
|
+
opts[name] ||= []
|
25
24
|
|
26
|
-
|
27
|
-
|
25
|
+
# should be REGEXP collection
|
26
|
+
opts[name] = [*opts[name]].map { |e| !(e.class <= ::Regexp) ? Regexp.new(e.to_s) : e }
|
28
27
|
|
29
|
-
|
28
|
+
end
|
30
29
|
|
31
30
|
|
32
|
-
|
31
|
+
opts[:caller_folder] ||= opts.delete(:f) || opts.delete(:folder) || ::Loader.caller_folder
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
unless folder.to_s[0] == File::Separator
|
34
|
+
folder= [opts[:caller_folder], folder]
|
35
|
+
end
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
path_parts.push("*.{rb,ru}")
|
37
|
+
#> recursive option
|
38
|
+
begin
|
39
|
+
path_parts= [*folder]
|
40
|
+
if opts[:recursive]
|
41
|
+
path_parts.push("**")
|
45
42
|
end
|
43
|
+
path_parts.push("*.{rb,ru}")
|
44
|
+
end
|
46
45
|
|
47
|
-
|
46
|
+
return Dir.glob(File.join(*path_parts)).sort_by { |e| e.split(File::Separator).size }.map { |one_path|
|
48
47
|
|
49
|
-
|
48
|
+
next unless opts[:exclude].select { |regex| one_path =~ regex ? true : false }.empty?
|
50
49
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
50
|
+
if opts[:include].empty?
|
51
|
+
require(one_path); one_path
|
52
|
+
else
|
53
|
+
opts[:include].each do |regex|
|
54
|
+
if one_path =~ regex
|
55
|
+
require(one_path); one_path
|
58
56
|
end
|
59
57
|
end
|
58
|
+
end
|
60
59
|
|
61
|
-
|
62
|
-
|
63
|
-
end
|
60
|
+
}.compact
|
64
61
|
|
65
|
-
|
62
|
+
end
|
66
63
|
|
67
|
-
|
68
|
-
require_relative_directory *args, r: true, f: Loader.caller_folder
|
69
|
-
end
|
70
|
-
alias :require_directory_r :require_relative_directory_r
|
64
|
+
alias :require_directory :require_relative_directory
|
71
65
|
|
66
|
+
def require_relative_directory_r(*args)
|
67
|
+
require_relative_directory *args, r: true, f: Loader.caller_folder
|
72
68
|
end
|
73
69
|
|
70
|
+
alias :require_directory_r :require_relative_directory_r
|
71
|
+
|
74
72
|
end
|
75
73
|
|
76
|
-
Object.__send__ :include, Loader::
|
74
|
+
Object.__send__ :include, Loader::ObjectExtension
|
data/loader.gemspec
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
describe Loader::Helpers do
|
3
|
+
|
4
|
+
let(:project_folder) { 'Path/To/Project/Folder' }
|
5
|
+
subject { Loader::Helpers }
|
6
|
+
|
7
|
+
describe '#pwd' do
|
8
|
+
|
9
|
+
before do
|
10
|
+
allow(ENV).to receive(:[]).with('BUNDLE_GEMFILE').and_return(nil)
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'bundler envernioment variable set' do
|
14
|
+
|
15
|
+
before do
|
16
|
+
allow(ENV).to receive(:[]).with('BUNDLE_GEMFILE').and_return(File.join(project_folder,'Gemfile'))
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should return the project root folder by bundler gemfile env' do
|
20
|
+
expect(subject.pwd).to eq project_folder
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'Rails is present and the root methot return not nil object' do
|
26
|
+
|
27
|
+
let(:rails) { double('rails', root: project_folder) }
|
28
|
+
before { stub_const('Rails', rails) }
|
29
|
+
|
30
|
+
it 'should fetch rails root path' do
|
31
|
+
expect(subject.pwd).to eq project_folder
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when everything fails, fall back use build in Dir module' do
|
37
|
+
|
38
|
+
it 'should use dir pwd on fallback' do
|
39
|
+
|
40
|
+
expect(Dir).to receive(:pwd).and_return(project_folder)
|
41
|
+
expect(subject.pwd).to eq project_folder
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/test/manual_test.rb
ADDED
data/test/test_autoload.rb
CHANGED
@@ -2,7 +2,7 @@ require_relative 'helper'
|
|
2
2
|
describe Loader::AutoLoad do
|
3
3
|
|
4
4
|
before do
|
5
|
-
Loader::
|
5
|
+
Loader::Helpers.__send__(:define_singleton_method,:pwd){ __dir__ }
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'should raise an constant missing error than' do
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1
|
4
|
+
version: 2.2.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: 2015-
|
12
|
-
dependencies:
|
11
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
description: " easy to use File loader that allow directories/project both Lazy Load
|
14
42
|
and Eager load for files and constants. The Eager load for relative directory made
|
15
43
|
for gems by default "
|
@@ -21,9 +49,7 @@ extra_rdoc_files: []
|
|
21
49
|
files:
|
22
50
|
- ".gitignore"
|
23
51
|
- ".idea/.name"
|
24
|
-
- ".idea/.rakeTasks"
|
25
52
|
- ".idea/encodings.xml"
|
26
|
-
- ".idea/loader.iml"
|
27
53
|
- ".idea/misc.xml"
|
28
54
|
- ".idea/modules.xml"
|
29
55
|
- ".idea/scopes/scope_settings.xml"
|
@@ -44,15 +70,22 @@ files:
|
|
44
70
|
- files.rb
|
45
71
|
- lib/loader.rb
|
46
72
|
- lib/loader/autoload.rb
|
73
|
+
- lib/loader/autoload/fetcher.rb
|
74
|
+
- lib/loader/autoload/loader_patch.rb
|
75
|
+
- lib/loader/autoload/module_patch.rb
|
76
|
+
- lib/loader/helpers.rb
|
47
77
|
- lib/loader/meta.rb
|
48
78
|
- lib/loader/require.rb
|
49
79
|
- loader.gemspec
|
80
|
+
- spec/loader/helpers_spec.rb
|
81
|
+
- spec/spec_helper.rb
|
50
82
|
- test/app/controllers/samples_controller.rb
|
51
83
|
- test/helper.rb
|
52
84
|
- test/lib/cat.rb
|
53
85
|
- test/lib/cat/sup.rb
|
54
86
|
- test/lib/cat/tail.rb
|
55
87
|
- test/lib/dog.rb
|
88
|
+
- test/manual_test.rb
|
56
89
|
- test/sub/test2.rb
|
57
90
|
- test/test.rb
|
58
91
|
- test/test_autoload.rb
|
@@ -75,19 +108,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
108
|
version: '0'
|
76
109
|
requirements: []
|
77
110
|
rubyforge_project:
|
78
|
-
rubygems_version: 2.
|
111
|
+
rubygems_version: 2.2.2
|
79
112
|
signing_key:
|
80
113
|
specification_version: 4
|
81
114
|
summary: easy to use File loader that allow directories/project both Lazy Load and
|
82
115
|
Eager load for files and constants. The Eager load for relative directory made for
|
83
116
|
gems by default
|
84
117
|
test_files:
|
118
|
+
- spec/loader/helpers_spec.rb
|
119
|
+
- spec/spec_helper.rb
|
85
120
|
- test/app/controllers/samples_controller.rb
|
86
121
|
- test/helper.rb
|
87
122
|
- test/lib/cat.rb
|
88
123
|
- test/lib/cat/sup.rb
|
89
124
|
- test/lib/cat/tail.rb
|
90
125
|
- test/lib/dog.rb
|
126
|
+
- test/manual_test.rb
|
91
127
|
- test/sub/test2.rb
|
92
128
|
- test/test.rb
|
93
129
|
- test/test_autoload.rb
|
data/.idea/.rakeTasks
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<Settings><!--This file was automatically generated by Ruby plugin.
|
3
|
-
You are allowed to:
|
4
|
-
1. Remove rake task
|
5
|
-
2. Add existing rake tasks
|
6
|
-
To add existing rake tasks automatically delete this file and reload the project.
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build loader-1.4.2.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Build and install loader-1.4.2.gem into system gems" fullCmd="install" taksId="install" /><RakeTask description="Create tag v1.4.2 and build and push loader-1.4.2.gem to Rubygems" fullCmd="release" taksId="release" /></RakeGroup></Settings>
|
data/.idea/loader.iml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
3
|
-
<component name="FacetManager">
|
4
|
-
<facet type="gem" name="Ruby Gem">
|
5
|
-
<configuration>
|
6
|
-
<option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
|
7
|
-
<option name="GEM_APP_TEST_PATH" value="$MODULE_DIR$/test" />
|
8
|
-
<option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
|
9
|
-
</configuration>
|
10
|
-
</facet>
|
11
|
-
</component>
|
12
|
-
<component name="NewModuleRootManager">
|
13
|
-
<content url="file://$MODULE_DIR$">
|
14
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
15
|
-
</content>
|
16
|
-
<orderEntry type="inheritedJdk" />
|
17
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.7.12, RVM: ruby-2.1.2) [gem]" level="application" />
|
19
|
-
</component>
|
20
|
-
</module>
|