basepath 0.4.0 → 0.5.0
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/Rakefile +5 -5
- data/VERSION +1 -1
- data/lib/basepath.rb +10 -5
- metadata +3 -3
data/Rakefile
CHANGED
@@ -4,12 +4,12 @@ require 'rake'
|
|
4
4
|
begin
|
5
5
|
require 'jeweler'
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name
|
8
|
-
gem.summary
|
7
|
+
gem.name = "basepath"
|
8
|
+
gem.summary = %Q{Define you application base path for easy requires and general access to files.}
|
9
9
|
gem.description = %Q{By adding a .base file to your application base dir, helps you augment $LOAD_PATH, auto-require files, and set constants to important paths.}
|
10
|
-
gem.email
|
11
|
-
gem.homepage
|
12
|
-
gem.authors
|
10
|
+
gem.email = "dev@caiochassot.com"
|
11
|
+
gem.homepage = "http://github.com/kch/basepath"
|
12
|
+
gem.authors = ["Caio Chassot"]
|
13
13
|
gem.add_development_dependency "bacon", ">= 0"
|
14
14
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
15
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/lib/basepath.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require 'pathname'
|
3
|
+
require 'yaml'
|
2
4
|
|
3
5
|
module Basepath
|
4
6
|
DOT_BASE = '.base'
|
@@ -23,16 +25,19 @@ module Basepath
|
|
23
25
|
|
24
26
|
def find_base!
|
25
27
|
paths_tried = []
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
caller_line_before_require = caller.inject(false) do |was_in_require, line|
|
29
|
+
is_in_require = line.force_encoding(__ENCODING__) =~ /`(rescue in )?require'$/
|
30
|
+
break line if was_in_require && !is_in_require
|
31
|
+
is_in_require
|
32
|
+
end
|
33
|
+
if caller_line_before_require
|
29
34
|
path_from_requirer = Pathname.new(path_from_caller_line(caller_line_before_require)).realpath.dirname
|
30
35
|
base_from_requirer = find_base(path_from_requirer)
|
31
36
|
return base_from_requirer if base_from_requirer
|
32
37
|
paths_tried << path_from_requirer
|
33
38
|
end
|
34
39
|
path_from_pwd = Pathname.new(Dir.pwd).realpath
|
35
|
-
pwd_path_parent_of_requirer_path =
|
40
|
+
pwd_path_parent_of_requirer_path = caller_line_before_require && "#{path_from_requirer}/".index("#{path_from_pwd}/") == 0
|
36
41
|
if not pwd_path_parent_of_requirer_path
|
37
42
|
base_from_pwd = find_base(path_from_pwd)
|
38
43
|
return base_from_pwd if base_from_pwd
|
@@ -73,7 +78,7 @@ module Basepath
|
|
73
78
|
$LOAD_PATH.unshift(*load_paths)
|
74
79
|
|
75
80
|
# requires
|
76
|
-
loaded = caller(0).map { |s| s[/\A(.+?)(?:\.rb)?:\d+(?::in `.*?')?\z/, 1] }.compact.uniq
|
81
|
+
loaded = caller(0).map { |s| s.force_encoding(__ENCODING__)[/\A(.+?)(?:\.rb)?:\d+(?::in `.*?')?\z/, 1] }.compact.uniq
|
77
82
|
globs, names = base_conf[:requires].split("\n").partition { |s| s =~ /\*/ }
|
78
83
|
names.map! { |s| const_expand! s, false }.concat \
|
79
84
|
globs.map { |s| Dir[const_expand!(s).to_s + ".rb"] }\
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 5
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.5.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Caio Chassot
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-08-02 00:00:00 -03:00
|
18
18
|
default_executable: basepath-init
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|