respond_to_missing 0.0.0 → 0.0.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.
@@ -1,6 +1,10 @@
1
1
  = respond_to_missing
2
2
 
3
- Defines <tt>{Object#respond_to_missing?}[http://www.ruby-doc.org/core/classes/Object.html#M001006]</tt> and patches <tt>{Object#respond_to?}[http://www.ruby-doc.org/core/classes/Object.html#M001005]</tt> unless this functionality has already been implemented (ruby v1.9+)
3
+ {<img src="https://secure.travis-ci.org/shuber/respond_to_missing.png"/>}[http://travis-ci.org/shuber/respond_to_missing]
4
+ {<img src="https://d25lcipzij17d.cloudfront.net/badge.png?v=0.0.1"/>}[http://rubygems.org/gems/respond_to_missing]
5
+ {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/shuber/respond_to_missing]
6
+
7
+ Defines <tt>{Object#respond_to_missing?}[http://www.ruby-doc.org/core/classes/Object.html#M001006]</tt> and patches <tt>{Object#respond_to?}[http://www.ruby-doc.org/core/classes/Object.html#M001005]</tt> unless this functionality has already been implemented (ruby versions 1.9+)
4
8
 
5
9
 
6
10
  == Installation
@@ -8,10 +12,21 @@ Defines <tt>{Object#respond_to_missing?}[http://www.ruby-doc.org/core/classes/Ob
8
12
  gem install respond_to_missing
9
13
 
10
14
 
11
- == Note on Patches/Pull Requests
15
+ == Usage
16
+
17
+ Define <tt>respond_to_missing?</tt> whenever an object overrides <tt>method_missing</tt>
18
+
19
+ class User
20
+ def method_missing(method_name, *args)
21
+ method_name == :test_method ? true : super
22
+ end
23
+
24
+ def respond_to_missing?(method_name, include_super)
25
+ method_name == :test_method || super
26
+ end
27
+ end
28
+
29
+
30
+ == Testing
12
31
 
13
- * Fork the project.
14
- * Make your feature addition or bug fix.
15
- * Add tests for it. This is important so I don't break it in a future version unintentionally.
16
- * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
17
- * Send me a pull request. Bonus points for topic branches.
32
+ rake
data/Rakefile CHANGED
@@ -1,15 +1,17 @@
1
- require 'rake'
2
1
  require 'rake/testtask'
3
- require 'rake/rdoctask'
2
+ begin
3
+ require 'rdoc/task'
4
+ rescue LoadError
5
+ require 'rake/rdoctask'
6
+ end
4
7
 
5
8
  desc 'Default: run unit tests'
6
9
  task :default => :test
7
10
 
8
11
  desc 'Test the respond_to_missing gem'
9
12
  Rake::TestTask.new(:test) do |t|
10
- t.libs += ['lib', 'test']
11
- t.pattern = 'test/**/*_test.rb'
12
- t.verbose = true
13
+ t.libs.push 'lib'
14
+ t.test_files = FileList['test/*_test.rb']
13
15
  end
14
16
 
15
17
  desc 'Generate documentation for the respond_to_missing gem'
@@ -1,12 +1,12 @@
1
- # Defines <tt>Object#respond_to_missing?</tt> and patches <tt>Object#respond_to?</tt> unless this functionality has already been implemented (ruby v1.9+)
1
+ # Defines <tt>Object#respond_to_missing?</tt> and patches <tt>Object#respond_to?</tt> unless this functionality has already been implemented (ruby versions 1.9+)
2
2
  module RespondToMissing
3
3
  autoload :Version, 'respond_to_missing/version'
4
4
 
5
- def respond_to?(method, include_private = false)
6
- super || respond_to_missing?(method, include_private)
5
+ def respond_to?(method_name, include_private = false)
6
+ super || !!respond_to_missing?(method_name, include_private)
7
7
  end
8
8
 
9
- def respond_to_missing?(method, include_private)
9
+ def respond_to_missing?(method_name, include_private)
10
10
  false
11
11
  end
12
12
  end
@@ -3,7 +3,7 @@ module RespondToMissing
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 0
6
- PATCH = 0
6
+ PATCH = 1
7
7
 
8
8
  # Returns a version string by joining <tt>MAJOR</tt>, <tt>MINOR</tt>, and <tt>PATCH</tt> with <tt>'.'</tt>
9
9
  #
@@ -2,17 +2,27 @@ require File.expand_path('../test_helper', __FILE__)
2
2
 
3
3
  class RespondToMissingTest < Test::Unit::TestCase
4
4
  module Mock
5
- def self.respond_to_missing?(method, include_private)
6
- method == :testing || super
5
+ def self.respond_to_missing?(method_name, include_private)
6
+ method_name == :testing || super
7
+ end
8
+ end
9
+
10
+ module NonBooleanMock
11
+ def self.respond_to_missing?(method_name, include_private)
12
+ 'test'
7
13
  end
8
14
  end
9
15
 
10
16
  def test_should_respond_to_respond_to_missing
11
- assert respond_to?(:respond_to_missing?)
17
+ assert Object.new.respond_to?(:respond_to_missing?)
12
18
  end
13
19
 
14
20
  def test_should_pass_failing_respond_to_calls_to_respond_to_missing
15
21
  assert Mock.respond_to?(:testing)
16
22
  assert !Mock.respond_to?(:undefined_method)
17
23
  end
24
+
25
+ def test_should_always_return_a_boolean
26
+ assert_equal true, NonBooleanMock.respond_to?(:testing)
27
+ end
18
28
  end
@@ -1,5 +1,3 @@
1
+ $: << File.expand_path('../../lib', __FILE__)
1
2
  require 'test/unit'
2
-
3
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
- $:.unshift(File.dirname(__FILE__))
5
3
  require 'respond_to_missing'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: respond_to_missing
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 0
10
- version: 0.0.0
9
+ - 1
10
+ version: 0.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sean Huber
@@ -15,11 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-01 00:00:00 -07:00
18
+ date: 2013-01-25 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
22
- description: Defines Object#respond_to_missing? and patches Object#respond_to? unless this functionality has already been implemented (ruby v1.9+)
22
+ description: Defines Object#respond_to_missing? and patches Object#respond_to? unless this functionality has already been implemented (ruby versions 1.9+)
23
23
  email: shuber@huberry.com
24
24
  executables: []
25
25
 
@@ -40,11 +40,8 @@ homepage: http://github.com/shuber/respond_to_missing
40
40
  licenses: []
41
41
 
42
42
  post_install_message:
43
- rdoc_options:
44
- - --line-numbers
45
- - --inline-source
46
- - --main
47
- - README.rdoc
43
+ rdoc_options: []
44
+
48
45
  require_paths:
49
46
  - lib
50
47
  required_ruby_version: !ruby/object:Gem::Requirement