method_source 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - ree
6
+ - rbx-2.0
7
+ - jruby
8
+
9
+ notifications:
10
+ irc: "irc.freenode.org#pry"
11
+ recipients:
12
+ - jrmair@gmail.com
13
+
14
+ branches:
15
+ only:
16
+ - master
@@ -0,0 +1 @@
1
+ -m markdown
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ License
2
+ -------
3
+
4
+ (The MIT License)
5
+
6
+ Copyright (c) 2011 John Mair (banisterfiend)
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining
9
+ a copy of this software and associated documentation files (the
10
+ 'Software'), to deal in the Software without restriction, including
11
+ without limitation the rights to use, copy, modify, merge, publish,
12
+ distribute, sublicense, and/or sell copies of the Software, and to
13
+ permit persons to whom the Software is furnished to do so, subject to
14
+ the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be
17
+ included in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
20
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
23
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -16,7 +16,7 @@ Method comments can also be extracted using the `comment` method.
16
16
  It is written in pure Ruby (no C).
17
17
 
18
18
  * Some Ruby 1.8 support now available.
19
- * Support for MRI, RBX, JRuby.
19
+ * Support for MRI, RBX, JRuby, REE
20
20
 
21
21
  `method_source` provides the `source` and `comment` methods to the `Method` and
22
22
  `UnboundMethod` and `Proc` classes.
@@ -62,6 +62,8 @@ Special Thanks
62
62
 
63
63
  [Dmitry Elastic](https://github.com/dmitryelastic) for the brilliant Ruby 1.8 `source_location` hack.
64
64
 
65
+ [Samuel Kadolph](https://github.com/samuelkadolph) for the JRuby 1.8 `source_location`.
66
+
65
67
  License
66
68
  -------
67
69
 
data/Rakefile CHANGED
@@ -19,21 +19,23 @@ def apply_spec_defaults(s)
19
19
  s.email = 'jrmair@gmail.com'
20
20
  s.description = s.summary
21
21
  s.require_path = 'lib'
22
- s.add_dependency("ruby_parser",">=2.0.5")
23
-
24
- s.add_development_dependency("bacon",">=1.1.0")
25
- s.add_development_dependency("open4", "~> 1.0.1")
22
+ s.add_dependency("ruby_parser","~>2.0.5")
26
23
 
24
+ s.add_development_dependency("bacon","~>1.1.0")
25
+ s.add_development_dependency("rake", "~>0.9")
27
26
  s.homepage = "http://banisterfiend.wordpress.com"
28
27
  s.has_rdoc = 'yard'
29
- s.files = Dir["ext/**/extconf.rb", "ext/**/*.h", "ext/**/*.c", "lib/**/*.rb",
30
- "test/*.rb", "CHANGELOG", "README.markdown", "Rakefile", ".gemtest"]
28
+ s.files = `git ls-files`.split("\n")
29
+ s.test_files = `git ls-files -- test/*`.split("\n")
31
30
  end
32
31
 
33
32
  task :test do
34
- sh "bacon -k #{direc}/test/test.rb"
33
+ sh "bacon -q #{direc}/test/test.rb"
35
34
  end
36
35
 
36
+ desc "Set up and run tests"
37
+ task :default => [:test]
38
+
37
39
  namespace :ruby do
38
40
  spec = Gem::Specification.new do |s|
39
41
  apply_spec_defaults(s)
@@ -44,6 +46,13 @@ namespace :ruby do
44
46
  pkg.need_zip = false
45
47
  pkg.need_tar = false
46
48
  end
49
+
50
+ desc "Generate gemspec file"
51
+ task :gemspec do
52
+ File.open("#{spec.name}.gemspec", "w") do |f|
53
+ f << spec.to_ruby
54
+ end
55
+ end
47
56
  end
48
57
 
49
58
  desc "build all platform gems at once"
@@ -1,7 +1,18 @@
1
1
  module MethodSource
2
+ module ReeSourceLocation
3
+ # Ruby enterprise edition provides all the information that's
4
+ # needed, in a slightly different way.
5
+ def source_location
6
+ [__file__, __line__] rescue nil
7
+ end
8
+ end
9
+
2
10
  module SourceLocation
3
11
  module MethodExtensions
4
- if defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
12
+ if Proc.method_defined? :__file__
13
+ include ReeSourceLocation
14
+
15
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
5
16
  require 'java'
6
17
 
7
18
  # JRuby version source_location hack
@@ -41,8 +52,10 @@ module MethodSource
41
52
  end
42
53
 
43
54
  module ProcExtensions
55
+ if Proc.method_defined? :__file__
56
+ include ReeSourceLocation
44
57
 
45
- if defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /rbx/
58
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /rbx/
46
59
 
47
60
  # Return the source location for a Proc (Rubinius only)
48
61
  # @return [Array] A two element array. First element is the
@@ -51,7 +64,6 @@ module MethodSource
51
64
  def source_location
52
65
  [block.file.to_s, block.line]
53
66
  end
54
-
55
67
  else
56
68
 
57
69
  # Return the source location for a Proc (in implementations
@@ -67,7 +79,10 @@ module MethodSource
67
79
  end
68
80
 
69
81
  module UnboundMethodExtensions
70
- if defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
82
+ if Proc.method_defined? :__file__
83
+ include ReeSourceLocation
84
+
85
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
71
86
  require 'java'
72
87
 
73
88
  # JRuby version source_location hack
@@ -75,6 +90,7 @@ module MethodSource
75
90
  def source_location
76
91
  to_java.source_location(Thread.current.to_java.getContext())
77
92
  end
93
+
78
94
  else
79
95
 
80
96
 
@@ -1,3 +1,3 @@
1
1
  module MethodSource
2
- VERSION = "0.6.5"
2
+ VERSION = "0.6.6"
3
3
  end
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{method_source}
5
+ s.version = "0.6.6"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = [%q{John Mair (banisterfiend)}]
9
+ s.date = %q{2011-10-03}
10
+ s.description = %q{retrieve the sourcecode for a method}
11
+ s.email = %q{jrmair@gmail.com}
12
+ s.files = [%q{.gemtest}, %q{.travis.yml}, %q{.yardopts}, %q{LICENSE}, %q{README.markdown}, %q{Rakefile}, %q{lib/method_source.rb}, %q{lib/method_source/source_location.rb}, %q{lib/method_source/version.rb}, %q{test/test.rb}, %q{test/test_helper.rb}]
13
+ s.homepage = %q{http://banisterfiend.wordpress.com}
14
+ s.require_paths = [%q{lib}]
15
+ s.rubygems_version = %q{1.8.6}
16
+ s.summary = %q{retrieve the sourcecode for a method}
17
+ s.test_files = [%q{test/test.rb}, %q{test/test_helper.rb}]
18
+
19
+ if s.respond_to? :specification_version then
20
+ s.specification_version = 3
21
+
22
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
23
+ s.add_runtime_dependency(%q<ruby_parser>, ["~> 2.0.5"])
24
+ s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
25
+ s.add_development_dependency(%q<rake>, ["~> 0.9"])
26
+ else
27
+ s.add_dependency(%q<ruby_parser>, ["~> 2.0.5"])
28
+ s.add_dependency(%q<bacon>, ["~> 1.1.0"])
29
+ s.add_dependency(%q<rake>, ["~> 0.9"])
30
+ end
31
+ else
32
+ s.add_dependency(%q<ruby_parser>, ["~> 2.0.5"])
33
+ s.add_dependency(%q<bacon>, ["~> 1.1.0"])
34
+ s.add_dependency(%q<rake>, ["~> 0.9"])
35
+ end
36
+ end
@@ -2,22 +2,11 @@ direc = File.dirname(__FILE__)
2
2
 
3
3
  require 'rubygems'
4
4
  require 'bacon'
5
- require 'open4'
6
5
  require "#{direc}/../lib/method_source"
7
6
  require "#{direc}/test_helper"
8
7
 
9
8
  describe MethodSource do
10
9
 
11
- if !jruby?
12
- describe "emitted warnings" do
13
- it 'should emit no warnings' do
14
- Open4.popen4 'ruby -I lib -rubygems -r"method_source" -W -e "exit"' do |pid,stdin,stdout,stderr|
15
- stderr.read.empty?.should == true
16
- end
17
- end
18
- end
19
- end
20
-
21
10
  describe "source_location (testing 1.8 implementation)" do
22
11
  it 'should return correct source_location for a method' do
23
12
  method(:hello).source_location.first.should =~ /test_helper/
metadata CHANGED
@@ -1,85 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: method_source
3
- version: !ruby/object:Gem::Version
4
- version: 0.6.5
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 6
9
+ - 6
10
+ version: 0.6.6
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - John Mair (banisterfiend)
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-09-07 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-10-03 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: ruby_parser
16
- requirement: &70251253612220 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 2
31
+ - 0
32
+ - 5
21
33
  version: 2.0.5
22
34
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70251253612220
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: bacon
27
- requirement: &70251253611520 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
28
40
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 19
45
+ segments:
46
+ - 1
47
+ - 1
48
+ - 0
32
49
  version: 1.1.0
33
50
  type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: rake
34
54
  prerelease: false
35
- version_requirements: *70251253611520
36
- - !ruby/object:Gem::Dependency
37
- name: open4
38
- requirement: &70251253610760 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
39
56
  none: false
40
- requirements:
57
+ requirements:
41
58
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 1.0.1
59
+ - !ruby/object:Gem::Version
60
+ hash: 25
61
+ segments:
62
+ - 0
63
+ - 9
64
+ version: "0.9"
44
65
  type: :development
45
- prerelease: false
46
- version_requirements: *70251253610760
66
+ version_requirements: *id003
47
67
  description: retrieve the sourcecode for a method
48
68
  email: jrmair@gmail.com
49
69
  executables: []
70
+
50
71
  extensions: []
72
+
51
73
  extra_rdoc_files: []
52
- files:
74
+
75
+ files:
76
+ - .gemtest
77
+ - .travis.yml
78
+ - .yardopts
79
+ - Gemfile
80
+ - LICENSE
81
+ - README.markdown
82
+ - Rakefile
83
+ - lib/method_source.rb
53
84
  - lib/method_source/source_location.rb
54
85
  - lib/method_source/version.rb
55
- - lib/method_source.rb
86
+ - method_source.gemspec
56
87
  - test/test.rb
57
88
  - test/test_helper.rb
58
- - README.markdown
59
- - Rakefile
60
- - .gemtest
61
89
  homepage: http://banisterfiend.wordpress.com
62
90
  licenses: []
91
+
63
92
  post_install_message:
64
93
  rdoc_options: []
65
- require_paths:
94
+
95
+ require_paths:
66
96
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
97
+ required_ruby_version: !ruby/object:Gem::Requirement
68
98
  none: false
69
- requirements:
70
- - - ! '>='
71
- - !ruby/object:Gem::Version
72
- version: '0'
73
- required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ hash: 3
103
+ segments:
104
+ - 0
105
+ version: "0"
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
107
  none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ hash: 3
112
+ segments:
113
+ - 0
114
+ version: "0"
79
115
  requirements: []
116
+
80
117
  rubyforge_project:
81
118
  rubygems_version: 1.8.6
82
119
  signing_key:
83
120
  specification_version: 3
84
121
  summary: retrieve the sourcecode for a method
85
- test_files: []
122
+ test_files:
123
+ - test/test.rb
124
+ - test/test_helper.rb