require_relative 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ docs
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- require_relative
1
+ require\_relative
2
2
  ================
3
3
 
4
4
  In Ruby 1.9.2, "." was removed from the $LOAD_PATH. require_relative was
@@ -13,3 +13,25 @@ This gem backports both of these features to earlier Rubies.
13
13
 
14
14
  require 'foo' #=> LoadError
15
15
  require_relative 'foo' #=> works!
16
+
17
+ If you're intending to use this gem to transition from Ruby 1.8.x to
18
+ 1.9.2, do this:
19
+
20
+ require 'rubygems'
21
+ require 'require_relative' if RUBY_VERSION =~ /1\.8/
22
+
23
+ And then it should run just fine on both.
24
+
25
+ ## Other Documentation
26
+
27
+ This gem is pretty straightforward, but we do have source documentation,
28
+ generated by rocco. You can find it in the gh-pages branch of this
29
+ repository or on [the
30
+ website](http://steveklabnik.github.com/require_relative).
31
+
32
+ ## Contributing
33
+
34
+ Please fork the project, make your commits, push them to GitHub, and
35
+ make a pull request. Patches should have documentation and/or tests.
36
+ Don't be afraid to make a pull request without them, if you don't know
37
+ how to test something we can work on it in the comments. :)
data/Rakefile CHANGED
@@ -7,3 +7,39 @@ require 'rake/testtask'
7
7
  Rake::TestTask.new do |t|
8
8
  t.pattern = "test/*_test.rb"
9
9
  end
10
+
11
+ begin
12
+ require 'rocco/tasks'
13
+ require 'rake/clean'
14
+ Rocco::make 'docs/'
15
+
16
+ desc 'Build rocco docs'
17
+ task :docs => :rocco
18
+ directory 'docs/'
19
+
20
+ desc 'Build docs and open in browser for the reading'
21
+ task :read => :docs do
22
+ sh 'open docs/index.html'
23
+ end
24
+
25
+ file 'docs/index.html' => 'lib/require_relative.rb' do |f|
26
+ cp "docs/lib/require_relative.html", "docs/index.html"
27
+ cp "docs/lib/require_relative.html", "docs/require_relative.html"
28
+ end
29
+
30
+ file 'docs/require_relative/version.html' => 'lib/require_relative/version.rb' do |f|
31
+ mkdir "docs/require_relative"
32
+ cp "docs/lib/require_relative/version.html", "docs/require_relative/version.html"
33
+ end
34
+
35
+ task :docs => 'docs/index.html'
36
+ task :docs => 'docs/require_relative/version.html'
37
+ CLEAN.include 'docs/index.html'
38
+
39
+ # Alias for docs task
40
+ task :doc => :docs
41
+
42
+ rescue LoadError
43
+ warn "#$! -- rocco tasks not loaded."
44
+ end
45
+
@@ -1,7 +1,26 @@
1
+ # encoding: utf-8
2
+ # This is the source code for require_relative, a Ruby gem that backports that
3
+ # particular feature to Ruby 1.8.
4
+ #
5
+ # Please check out the [README](https://github.com/steveklabnik/require_relative/blob/master/README.md)
6
+ # for more information on how to build your own copy of the gem, as well as
7
+ # contribute fixes.
8
+
9
+ # Yep, you're looking at it! This gem is pretty small, and for good reason.
10
+ # There's not much to do! We use split to find the filename that we're
11
+ # looking to require, raise a LoadError if it's called in a context (like eval)
12
+ # that it shouldn't be, and then require it via regular old require.
13
+ #
14
+ # Now, in 1.9, "." is totally removed from the $LOAD_PATH. We don't do that
15
+ # here, because that would break a lot of other code! You're still vulnerable
16
+ # to the security hole that caused this change to happen in the first place.
17
+ # You will be able to use this gem to transition the code you write over to
18
+ # the 1.9 syntax, though.
1
19
  def require_relative(relative_feature)
20
+
2
21
  file = caller.first.split(/:\d/,2).first
3
- if /\A\((.*)\)/ =~ file # eval, etc.
4
- raise LoadError, "require_relative is called in #{$1}"
5
- end
22
+
23
+ raise LoadError, "require_relative is called in #{$1}" if /\A\((.*)\)/ =~ file
24
+
6
25
  require File.expand_path(relative_feature, File.dirname(file))
7
26
  end
@@ -1,3 +1,5 @@
1
+ # This is simply the version number. Splitting it off into a different
2
+ # file is generally considered to be good practice. :)
1
3
  module RequireRelative
2
- VERSION = "0.0.3"
4
+ VERSION = "1.0.0"
3
5
  end
@@ -6,13 +6,14 @@ Gem::Specification.new do |s|
6
6
  s.name = "require_relative"
7
7
  s.version = RequireRelative::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
- s.authors = ["Steve Klabnik"]
9
+ s.authors = ["Steve Klabnik <steve@steveklabnik.com>", "Brendan Taylor <whateley@gmail.com>"]
10
10
  s.email = ["steve@steveklabnik.com"]
11
- s.homepage = ""
11
+ s.homepage = "https://steveklabnik.github.com/require_relative"
12
12
  s.summary = %q{This backports require_relative to Ruby 1.8.}
13
13
  s.description = %q{In Ruby 1.9.2, "." was removed from $:. This is a good idea, for security reasons. This gem backports this to Ruby 1.8.}
14
14
 
15
15
  s.add_development_dependency "minitest"
16
+ s.add_development_dependency "rocco"
16
17
 
17
18
  s.files = `git ls-files`.split("\n")
18
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,16 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_relative
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 23
4
5
  prerelease:
5
- version: 0.0.3
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
6
11
  platform: ruby
7
12
  authors:
8
- - Steve Klabnik
13
+ - Steve Klabnik <steve@steveklabnik.com>
14
+ - Brendan Taylor <whateley@gmail.com>
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2011-03-31 00:00:00 -04:00
19
+ date: 2011-05-10 00:00:00 -04:00
14
20
  default_executable:
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
@@ -21,9 +27,26 @@ dependencies:
21
27
  requirements:
22
28
  - - ">="
23
29
  - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
24
33
  version: "0"
25
34
  type: :development
26
35
  version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rocco
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :development
49
+ version_requirements: *id002
27
50
  description: In Ruby 1.9.2, "." was removed from $:. This is a good idea, for security reasons. This gem backports this to Ruby 1.8.
28
51
  email:
29
52
  - steve@steveklabnik.com
@@ -46,7 +69,7 @@ files:
46
69
  - test/require_relative_test.rb
47
70
  - test/subdir/bar.rb
48
71
  has_rdoc: true
49
- homepage: ""
72
+ homepage: https://steveklabnik.github.com/require_relative
50
73
  licenses: []
51
74
 
52
75
  post_install_message:
@@ -59,12 +82,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
82
  requirements:
60
83
  - - ">="
61
84
  - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
62
88
  version: "0"
63
89
  required_rubygems_version: !ruby/object:Gem::Requirement
64
90
  none: false
65
91
  requirements:
66
92
  - - ">="
67
93
  - !ruby/object:Gem::Version
94
+ hash: 3
95
+ segments:
96
+ - 0
68
97
  version: "0"
69
98
  requirements: []
70
99