negative-method 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,6 +18,3 @@ DEPENDENCIES
18
18
  jeweler (~> 1.5.1)
19
19
  rcov
20
20
  rspec (= 1.3.1)
21
-
22
- METADATA
23
- version: 1.0.6
@@ -1,6 +1,14 @@
1
1
  = negative-method
2
2
 
3
- Description goes here.
3
+ Negative methods automatically add negative method check for your module.
4
+ If you have object.is_valid? then the following methods will be available.
5
+
6
+ object.not_is_valid?
7
+ object.is_not_valid?
8
+ object.is_valid_not?
9
+
10
+ if one of the methods has been manually defined. that method will take precedent.
11
+
4
12
 
5
13
  == Contributing to negative-method
6
14
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.1
@@ -1,19 +1,19 @@
1
1
  module NegativeMethod
2
+ alias :_method_missing :method_missing
2
3
  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;
4
+
5
+ positive_method = get_positive_method_from negative_method_name.to_s
6
+ if ( positive_method && self.respond_to?(positive_method) )
7
+ return !self.send(positive_method, *args)
12
8
  end
9
+
10
+ _method_missing negative_method_name, *args
13
11
  end
14
12
 
15
- def get_original_method method_name
16
- if method_name.match(/^not_/) || method_name.match(/_not_/)
13
+ def get_positive_method_from method_name
14
+ if method_name.match(/^no_/)
15
+ return method_name.sub(/no_/,'')
16
+ elsif method_name.match(/^not_/) || method_name.match(/_not_/)
17
17
  return method_name.sub(/not_/,'')
18
18
  elsif method_name.match(/_not$/) || method_name.match(/_not?/)
19
19
  return method_name.sub(/_not/,'')
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{negative-method}
8
- s.version = "1.1.0"
8
+ s.version = "1.2.1"
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"]
12
- s.date = %q{2010-12-17}
12
+ s.date = %q{2011-08-27}
13
13
  s.description = %q{generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good}
14
14
  s.email = %q{vinhtiensinh@yahoo.com}
15
15
  s.extra_rdoc_files = [
@@ -37,14 +37,13 @@ Gem::Specification.new do |s|
37
37
  s.homepage = %q{http://github.com/vinhtiensinh/negative-method}
38
38
  s.licenses = ["MIT"]
39
39
  s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.3.7}
40
+ s.rubygems_version = %q{1.5.2}
41
41
  s.summary = %q{generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good?}
42
42
  s.test_files = [
43
43
  "spec/negative-method_spec.rb"
44
44
  ]
45
45
 
46
46
  if s.respond_to? :specification_version then
47
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
47
  s.specification_version = 3
49
48
 
50
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -10,7 +10,7 @@ describe NegativeMethod do
10
10
  lambda { test.hasNotBeenDefined }.should raise_error
11
11
  end
12
12
 
13
- it "should raise error if the original method is undefined" do
13
+ it "should raise error if the positive method is undefined" do
14
14
  test = TestClass.new
15
15
  lambda { test.not_defined }.should raise_error
16
16
  end
@@ -38,4 +38,10 @@ describe NegativeMethod do
38
38
  test.should_receive(:has?).with('element').and_return(true)
39
39
  test.has_not?('element').should == false
40
40
  end
41
+
42
+ it "should negate method with 'no_' at the start" do
43
+ test = TestClass.new
44
+ test.should_receive(:good?).with('element').and_return(true)
45
+ test.no_good?('element').should == false
46
+ end
41
47
  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: 19
5
- prerelease: false
4
+ hash: 29
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 2
8
9
  - 1
9
- - 0
10
- version: 1.1.0
10
+ version: 1.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vinh Tran
@@ -15,11 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-17 00:00:00 +11:00
18
+ date: 2011-08-27 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
@@ -31,11 +30,11 @@ dependencies:
31
30
  - 3
32
31
  - 1
33
32
  version: 1.3.1
33
+ prerelease: false
34
34
  name: rspec
35
- requirement: *id001
36
35
  type: :development
36
+ requirement: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- prerelease: false
39
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
@@ -47,11 +46,11 @@ dependencies:
47
46
  - 0
48
47
  - 0
49
48
  version: 1.0.0
49
+ prerelease: false
50
50
  name: bundler
51
- requirement: *id002
52
51
  type: :development
52
+ requirement: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- prerelease: false
55
54
  version_requirements: &id003 !ruby/object:Gem::Requirement
56
55
  none: false
57
56
  requirements:
@@ -63,11 +62,11 @@ dependencies:
63
62
  - 5
64
63
  - 1
65
64
  version: 1.5.1
65
+ prerelease: false
66
66
  name: jeweler
67
- requirement: *id003
68
67
  type: :development
68
+ requirement: *id003
69
69
  - !ruby/object:Gem::Dependency
70
- prerelease: false
71
70
  version_requirements: &id004 !ruby/object:Gem::Requirement
72
71
  none: false
73
72
  requirements:
@@ -77,9 +76,10 @@ dependencies:
77
76
  segments:
78
77
  - 0
79
78
  version: "0"
79
+ prerelease: false
80
80
  name: rcov
81
- requirement: *id004
82
81
  type: :development
82
+ requirement: *id004
83
83
  description: generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good
84
84
  email: vinhtiensinh@yahoo.com
85
85
  executables: []
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  requirements: []
137
137
 
138
138
  rubyforge_project:
139
- rubygems_version: 1.3.7
139
+ rubygems_version: 1.5.2
140
140
  signing_key:
141
141
  specification_version: 3
142
142
  summary: generate negative methods base on existing positive method, if you have object.good? you will automatically have object.not_good?