respond_to 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,21 +1,3 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in respond_to.gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,44 +1,11 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "respond_to"
8
- gem.description = gem.summary = %Q{Easy way to make respond_to? matchers for case statements.}
9
- gem.email = "joshbuddy@gmail.com"
10
- gem.homepage = "http://github.com/joshbuddy/respond_to"
11
- gem.authors = ["Joshua Hull"]
12
- gem.add_development_dependency "rspec", ">= 1.2.9"
13
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
- end
15
- Jeweler::GemcutterTasks.new
16
- rescue LoadError
17
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
18
- end
19
-
20
- require 'spec/rake/spectask'
21
- Spec::Rake::SpecTask.new(:spec) do |spec|
22
- spec.libs << 'lib' << 'spec'
23
- spec.spec_files = FileList['spec/**/*_spec.rb']
24
- end
25
-
26
- Spec::Rake::SpecTask.new(:rcov) do |spec|
27
- spec.libs << 'lib' << 'spec'
28
- spec.pattern = 'spec/**/*_spec.rb'
29
- spec.rcov = true
30
- end
31
-
32
- task :spec => :check_dependencies
33
-
34
- task :default => :spec
35
-
36
- require 'rake/rdoctask'
37
- Rake::RDocTask.new do |rdoc|
38
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
39
-
40
- rdoc.rdoc_dir = 'rdoc'
41
- rdoc.title = "respond_to #{version}"
42
- rdoc.rdoc_files.include('README*')
43
- rdoc.rdoc_files.include('lib/**/*.rb')
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ desc "Run tests"
5
+ task :test do
6
+ $: << 'lib'
7
+ require 'respond_to'
8
+ require 'minitest/autorun'
9
+ require 'phocus'
10
+ Dir['test/test_*.rb'].each { |test| require test }
44
11
  end
@@ -1,24 +1,27 @@
1
1
  def RespondTo(method)
2
-
3
2
  RespondTo.create(method)
4
-
5
3
  end
6
4
 
7
5
  class RespondTo
8
-
9
- RespondTos = {}
6
+ Matchers = {}
10
7
 
11
8
  def self.create(method)
12
- RespondTos[method] ||= new(method)
9
+ Matchers[method] ||= new(method)
13
10
  end
14
-
11
+
15
12
  attr_reader :method
16
-
13
+
17
14
  def initialize(method)
18
15
  @method = method
19
16
  end
20
-
17
+
21
18
  def ===(o)
22
19
  o.respond_to?(method)
23
20
  end
21
+ end
22
+
23
+ class Symbol
24
+ def ~@
25
+ RespondTo(self)
26
+ end
24
27
  end
@@ -0,0 +1,3 @@
1
+ class RespondTo
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "respond_to/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "respond_to"
7
+ s.version = RespondTo::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Joshua Hull"]
10
+ s.email = ["joshbuddy@gmail.com"]
11
+ s.homepage = "http://github.com/joshbuddy/respond_to"
12
+ s.summary = %q{Easy way to make respond_to? matchers for case statements}
13
+ s.description = %q{Easy way to make respond_to? matchers for case statements.}
14
+
15
+ s.rubyforge_project = "respond_to"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+ end
@@ -0,0 +1,17 @@
1
+ class TestRespondTo < MiniTest::Unit::TestCase
2
+ def test_triple_eq
3
+ assert (RespondTo(:<<) === "testing")
4
+ end
5
+
6
+ def test_triple_eq_with_false
7
+ assert !(RespondTo(:crazytown) === ('testing'))
8
+ end
9
+
10
+ def test_only_one_object
11
+ assert RespondTo(:crazytown).equal?(RespondTo(:crazytown))
12
+ end
13
+
14
+ def test_with_symbol_tilde
15
+ assert (~:<< === "testing")
16
+ end
17
+ end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: respond_to
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Joshua Hull
@@ -9,67 +15,60 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-12-14 00:00:00 -05:00
18
+ date: 2011-03-10 00:00:00 -05:00
13
19
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.2.9
24
- version:
20
+ dependencies: []
21
+
25
22
  description: Easy way to make respond_to? matchers for case statements.
26
- email: joshbuddy@gmail.com
23
+ email:
24
+ - joshbuddy@gmail.com
27
25
  executables: []
28
26
 
29
27
  extensions: []
30
28
 
31
- extra_rdoc_files:
32
- - LICENSE
33
- - README.rdoc
29
+ extra_rdoc_files: []
30
+
34
31
  files:
35
- - .document
36
32
  - .gitignore
37
- - LICENSE
38
- - README.rdoc
33
+ - Gemfile
39
34
  - Rakefile
40
- - VERSION
41
35
  - lib/respond_to.rb
42
- - spec/respond_to_spec.rb
43
- - spec/spec.opts
44
- - spec/spec_helper.rb
36
+ - lib/respond_to/version.rb
37
+ - respond_to.gemspec
38
+ - test/test_respond_to.rb
45
39
  has_rdoc: true
46
40
  homepage: http://github.com/joshbuddy/respond_to
47
41
  licenses: []
48
42
 
49
43
  post_install_message:
50
- rdoc_options:
51
- - --charset=UTF-8
44
+ rdoc_options: []
45
+
52
46
  require_paths:
53
47
  - lib
54
48
  required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
55
50
  requirements:
56
51
  - - ">="
57
52
  - !ruby/object:Gem::Version
53
+ hash: 3
54
+ segments:
55
+ - 0
58
56
  version: "0"
59
- version:
60
57
  required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
61
59
  requirements:
62
60
  - - ">="
63
61
  - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
64
65
  version: "0"
65
- version:
66
66
  requirements: []
67
67
 
68
- rubyforge_project:
69
- rubygems_version: 1.3.5
68
+ rubyforge_project: respond_to
69
+ rubygems_version: 1.3.7
70
70
  signing_key:
71
71
  specification_version: 3
72
- summary: Easy way to make respond_to? matchers for case statements.
72
+ summary: Easy way to make respond_to? matchers for case statements
73
73
  test_files:
74
- - spec/respond_to_spec.rb
75
- - spec/spec_helper.rb
74
+ - test/test_respond_to.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2009 Joshua Hull
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,14 +0,0 @@
1
- = respond_to
2
-
3
- Easy way to make respond_to? matchers for case statements.
4
-
5
- == Usage
6
-
7
- require 'respond_to'
8
- str = 'my string'
9
- case str
10
- when RespondTo(:<<)
11
- str << 'new data'
12
- else
13
- raise
14
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.1
@@ -1,16 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "RespondTo" do
4
- it "should return true for a method that exists through ===" do
5
- (RespondTo(:<<) === "testing").should be_true
6
- end
7
-
8
- it "should return false for a method that doesn't exist through ===" do
9
- (RespondTo(:crazytown) === ('testing')).should be_false
10
- end
11
-
12
- it "should only make one object for each method" do
13
- RespondTo(:crazytown).equal?(RespondTo(:crazytown)).should be_true
14
- end
15
-
16
- end
@@ -1 +0,0 @@
1
- --color
@@ -1,9 +0,0 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'respond_to'
4
- require 'spec'
5
- require 'spec/autorun'
6
-
7
- Spec::Runner.configure do |config|
8
-
9
- end