dirge 0.0.2 → 0.0.3
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 +15 -0
- data/VERSION +1 -1
- data/lib/dirge.rb +17 -8
- data/spec/dirge_spec.rb +29 -0
- data/spec/test:2test/test.rb +1 -0
- metadata +5 -4
data/Rakefile
CHANGED
@@ -12,3 +12,18 @@ begin
|
|
12
12
|
rescue LoadError
|
13
13
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
14
14
|
end
|
15
|
+
|
16
|
+
require 'spec'
|
17
|
+
require 'spec/rake/spectask'
|
18
|
+
task :spec => 'spec:all'
|
19
|
+
namespace(:spec) do
|
20
|
+
Spec::Rake::SpecTask.new(:all) do |t|
|
21
|
+
t.spec_opts ||= []
|
22
|
+
t.spec_opts << "-rubygems"
|
23
|
+
t.spec_opts << '-rlib/dirge'
|
24
|
+
t.spec_opts << "--options" << "spec/spec.opts"
|
25
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/lib/dirge.rb
CHANGED
@@ -1,25 +1,34 @@
|
|
1
1
|
module Kernel
|
2
|
-
def
|
2
|
+
def __DIR_REL__(called_from = nil)
|
3
3
|
called_from ||= caller.first
|
4
|
-
caller_path = called_from[/(.*?(?=:\d))/, 1]
|
4
|
+
caller_path = called_from[/(.*?(?=:\d+(:|$)))/, 1]
|
5
5
|
caller_path = '.' if caller_path == ''
|
6
6
|
File.expand_path(File.dirname(caller_path))
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
unless method_defined?(:__DIR__)
|
10
|
+
alias_method :__DIR__, :__DIR_REL__
|
11
11
|
end
|
12
12
|
|
13
|
+
unless method_defined?(:require_relative)
|
14
|
+
def require_relative(path)
|
15
|
+
require File.join(__DIR_REL__(caller.first), path)
|
16
|
+
end
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
class Module
|
16
|
-
|
17
|
-
|
21
|
+
unless method_defined?(:autoload_relative)
|
22
|
+
def autoload_relative(name, filename)
|
23
|
+
autoload name, File.join(__DIR_REL__(caller.first), filename)
|
24
|
+
end
|
18
25
|
end
|
19
26
|
end
|
20
27
|
|
21
28
|
class String
|
22
|
-
|
23
|
-
|
29
|
+
unless method_defined?(:~@)
|
30
|
+
def ~@
|
31
|
+
File.expand_path(File.join(__DIR_REL__(caller.first), self))
|
32
|
+
end
|
24
33
|
end
|
25
34
|
end
|
data/spec/dirge_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
describe 'Dirge' do
|
2
|
+
it "should resolve a path" do
|
3
|
+
(~'test:2test/test').should == File.expand_path(File.join(File.dirname(__FILE__), 'test:2test', 'test'))
|
4
|
+
end
|
5
|
+
|
6
|
+
it 'should require a relative path' do
|
7
|
+
proc {
|
8
|
+
require_relative 'test:2test/test'
|
9
|
+
}.should raise_error(RuntimeError, 'okay okay, you included me')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should autoload a relative path' do
|
13
|
+
proc {
|
14
|
+
mod = Module.new do
|
15
|
+
autoload_relative :TestingTime, 'test:2test/test'
|
16
|
+
end
|
17
|
+
mod::TestingTime
|
18
|
+
}.should raise_error(RuntimeError, 'okay okay, you included me')
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should define __DIR__" do
|
22
|
+
__DIR__.should == File.expand_path(File.dirname(__FILE__))
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should define __DIR__ with a custom caller" do
|
26
|
+
__DIR__('testing/test.rb:3').should == File.expand_path('testing')
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
raise 'okay okay, you included me'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dirge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Hull
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-21 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -54,5 +54,6 @@ rubygems_version: 1.3.5
|
|
54
54
|
signing_key:
|
55
55
|
specification_version: 3
|
56
56
|
summary: Relative require, relative autoload and __DIR__
|
57
|
-
test_files:
|
58
|
-
|
57
|
+
test_files:
|
58
|
+
- spec/dirge_spec.rb
|
59
|
+
- spec/test:2test/test.rb
|