negative-method 0.1.0 → 1.1.0

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/Gemfile CHANGED
@@ -6,7 +6,7 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "shoulda", ">= 0"
9
+ gem 'rspec', '1.3.1'
10
10
  gem "bundler", "~> 1.0.0"
11
11
  gem "jeweler", "~> 1.5.1"
12
12
  gem "rcov", ">= 0"
@@ -8,7 +8,7 @@ GEM
8
8
  rake
9
9
  rake (0.8.7)
10
10
  rcov (0.9.9)
11
- shoulda (2.11.3)
11
+ rspec (1.3.1)
12
12
 
13
13
  PLATFORMS
14
14
  ruby
@@ -17,7 +17,7 @@ DEPENDENCIES
17
17
  bundler (~> 1.0.0)
18
18
  jeweler (~> 1.5.1)
19
19
  rcov
20
- shoulda
20
+ rspec (= 1.3.1)
21
21
 
22
22
  METADATA
23
23
  version: 1.0.6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 1.1.0
@@ -0,0 +1,22 @@
1
+ module NegativeMethod
2
+ def method_missing(negative_method_name, *args)
3
+ method = get_original_method negative_method_name.to_s
4
+ if (method)
5
+ if self.respond_to?(method)
6
+ return !self.send(method, *args)
7
+ else
8
+ raise "Cannot call negative method #{negative_method_name}, original method undefined"
9
+ end
10
+ else
11
+ super;
12
+ end
13
+ end
14
+
15
+ def get_original_method method_name
16
+ if method_name.match(/^not_/) || method_name.match(/_not_/)
17
+ return method_name.sub(/not_/,'')
18
+ elsif method_name.match(/_not$/) || method_name.match(/_not?/)
19
+ return method_name.sub(/_not/,'')
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in list.gemspec
4
+ gemspec
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,3 @@
1
+ module List
2
+ # Your code goes here...
3
+ end
@@ -0,0 +1,3 @@
1
+ module List
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "list/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "list"
7
+ s.version = List::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["TODO: Write your name"]
10
+ s.email = ["TODO: Write your email address"]
11
+ s.homepage = ""
12
+ s.summary = %q{TODO: Write a gem summary}
13
+ s.description = %q{TODO: Write a gem description}
14
+
15
+ s.rubyforge_project = "list"
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
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{negative-method}
8
- s.version = "0.1.0"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Vinh Tran"]
@@ -24,10 +24,15 @@ Gem::Specification.new do |s|
24
24
  "README.rdoc",
25
25
  "Rakefile",
26
26
  "VERSION",
27
- "lib/negative-method.rb",
27
+ "lib/negative_method.rb",
28
+ "list/.gitignore",
29
+ "list/Gemfile",
30
+ "list/Rakefile",
31
+ "list/lib/list.rb",
32
+ "list/lib/list/version.rb",
33
+ "list/list.gemspec",
28
34
  "negative-method.gemspec",
29
- "test/helper.rb",
30
- "test/test_negative-method.rb"
35
+ "spec/negative-method_spec.rb"
31
36
  ]
32
37
  s.homepage = %q{http://github.com/vinhtiensinh/negative-method}
33
38
  s.licenses = ["MIT"]
@@ -35,8 +40,7 @@ Gem::Specification.new do |s|
35
40
  s.rubygems_version = %q{1.3.7}
36
41
  s.summary = %q{generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good?}
37
42
  s.test_files = [
38
- "test/helper.rb",
39
- "test/test_negative-method.rb"
43
+ "spec/negative-method_spec.rb"
40
44
  ]
41
45
 
42
46
  if s.respond_to? :specification_version then
@@ -44,18 +48,18 @@ Gem::Specification.new do |s|
44
48
  s.specification_version = 3
45
49
 
46
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
- s.add_development_dependency(%q<shoulda>, [">= 0"])
51
+ s.add_development_dependency(%q<rspec>, ["= 1.3.1"])
48
52
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
49
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
50
54
  s.add_development_dependency(%q<rcov>, [">= 0"])
51
55
  else
52
- s.add_dependency(%q<shoulda>, [">= 0"])
56
+ s.add_dependency(%q<rspec>, ["= 1.3.1"])
53
57
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
54
58
  s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
55
59
  s.add_dependency(%q<rcov>, [">= 0"])
56
60
  end
57
61
  else
58
- s.add_dependency(%q<shoulda>, [">= 0"])
62
+ s.add_dependency(%q<rspec>, ["= 1.3.1"])
59
63
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
64
  s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
61
65
  s.add_dependency(%q<rcov>, [">= 0"])
@@ -0,0 +1,41 @@
1
+ require 'lib/negative_method'
2
+
3
+ class TestClass
4
+ include NegativeMethod
5
+ end
6
+
7
+ describe NegativeMethod do
8
+ it "should raise error if the method is undefined" do
9
+ test = TestClass.new
10
+ lambda { test.hasNotBeenDefined }.should raise_error
11
+ end
12
+
13
+ it "should raise error if the original method is undefined" do
14
+ test = TestClass.new
15
+ lambda { test.not_defined }.should raise_error
16
+ end
17
+
18
+ it "should negate method start with 'not_'" do
19
+ test = TestClass.new
20
+ test.should_receive(:valid).and_return(true)
21
+ test.not_valid.should == false
22
+ end
23
+
24
+ it "should negate method with '_not_' in the middle of the method name" do
25
+ test = TestClass.new
26
+ test.should_receive(:is_valid).and_return(true)
27
+ test.is_not_valid.should == false
28
+ end
29
+
30
+ it "should negate method with '_not' at the end" do
31
+ test = TestClass.new
32
+ test.should_receive(:is).with('valid').and_return(true)
33
+ test.is_not('valid').should == false
34
+ end
35
+
36
+ it "should negate method with '_not?' at the end" do
37
+ test = TestClass.new
38
+ test.should_receive(:has?).with('element').and_return(true)
39
+ test.has_not?('element').should == false
40
+ end
41
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: negative-method
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
- - 0
7
+ - 1
8
8
  - 1
9
9
  - 0
10
- version: 0.1.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vinh Tran
@@ -23,13 +23,15 @@ dependencies:
23
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
- - - ">="
26
+ - - "="
27
27
  - !ruby/object:Gem::Version
28
- hash: 3
28
+ hash: 25
29
29
  segments:
30
- - 0
31
- version: "0"
32
- name: shoulda
30
+ - 1
31
+ - 3
32
+ - 1
33
+ version: 1.3.1
34
+ name: rspec
33
35
  requirement: *id001
34
36
  type: :development
35
37
  - !ruby/object:Gem::Dependency
@@ -95,10 +97,15 @@ files:
95
97
  - README.rdoc
96
98
  - Rakefile
97
99
  - VERSION
98
- - lib/negative-method.rb
100
+ - lib/negative_method.rb
101
+ - list/.gitignore
102
+ - list/Gemfile
103
+ - list/Rakefile
104
+ - list/lib/list.rb
105
+ - list/lib/list/version.rb
106
+ - list/list.gemspec
99
107
  - negative-method.gemspec
100
- - test/helper.rb
101
- - test/test_negative-method.rb
108
+ - spec/negative-method_spec.rb
102
109
  has_rdoc: true
103
110
  homepage: http://github.com/vinhtiensinh/negative-method
104
111
  licenses:
@@ -134,5 +141,4 @@ signing_key:
134
141
  specification_version: 3
135
142
  summary: generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good?
136
143
  test_files:
137
- - test/helper.rb
138
- - test/test_negative-method.rb
144
+ - spec/negative-method_spec.rb
File without changes
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'negative-method'
16
-
17
- class Test::Unit::TestCase
18
- end
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestNegativeMethod < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end