canivete 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,3 +20,4 @@ Instructions:
20
20
  Test.new.soon_to_die_method
21
21
  Warning: calling deprecated method Test.soon_to_die_method
22
22
 
23
+ CI Server running [here](http://ci.theros.info)
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/gempackagetask'
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  GEM = "canivete"
8
- GEM_VERSION = "0.0.3"
8
+ GEM_VERSION = "0.0.4"
9
9
  SUMMARY = "ruby future swiss knife"
10
10
  AUTHOR = "Douglas Campos"
11
11
  EMAIL = "douglas@theros.info"
@@ -1,29 +1,49 @@
1
1
  module Canivete
2
+ module Deprecate
3
+ def self.included(base)
4
+ base.extend Deprecate
5
+ end
2
6
 
3
- module Deprecate
7
+ def method_added(method_name)
8
+ unless @_deprecation_options.nil?
9
+ module_eval <<END
10
+ alias_method :deprecated_#{method_name}, :#{method_name}
11
+ def #{method_name}(*args, &block)
12
+ warn "#{build_message(method_name)}"
13
+ deprecated_#{method_name}(*args, &block)
14
+ end
15
+ END
16
+ end
17
+ super
18
+ end
4
19
 
5
- def self.included(base)
6
- base.extend(Deprecate)
7
- end
20
+ def deprecate(opts = {})
21
+ @_deprecation_options = opts
22
+ end
8
23
 
9
- def method_added(methodName)
10
- if self.instance_variable_get(:@_deprecate_it) != nil
11
- puts "#{methodName} will be redefined"
12
- self.instance_variable_set(:@_deprecate_it, nil)
13
- module_eval <<END
14
- alias_method :deprecated_#{methodName}, :#{methodName}
15
- def #{methodName}(*args, &block)
16
- warn "Warning: calling deprecated method #{self}.#{methodName}"
17
- deprecated_#{methodName}(*args, &block)
18
- end
19
- END
20
- end
21
- super
22
- end
24
+ private
25
+
26
+ def build_message(method_name)
27
+ msg = "Warning: calling deprecated method #{self}.#{method_name}."
28
+ msg += " Use #{compute_new_method}." unless new_method.nil?
29
+ @_deprecation_options = nil
30
+ return msg
31
+ end
32
+
33
+ def compute_new_method
34
+ if new_method.class.eql? Symbol
35
+ "#{class_for_new_method}##{new_method}"
36
+ else
37
+ new_method
38
+ end
39
+ end
23
40
 
24
- def deprecate
25
- self.instance_variable_set :@_deprecate_it, true
26
- end
41
+ def new_method
42
+ @_deprecation_options[:for]
43
+ end
27
44
 
28
- end
45
+ def class_for_new_method
46
+ @_deprecation_options[:on] || self
47
+ end
48
+ end
29
49
  end
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canivete
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 3
9
- version: 0.0.3
4
+ version: 0.0.4
10
5
  platform: ruby
11
6
  authors:
12
7
  - Douglas Campos
@@ -14,7 +9,7 @@ autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
11
 
17
- date: 2010-04-23 00:00:00 -03:00
12
+ date: 2010-04-28 00:00:00 -03:00
18
13
  default_executable:
19
14
  dependencies: []
20
15
 
@@ -44,20 +39,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
39
  requirements:
45
40
  - - ">="
46
41
  - !ruby/object:Gem::Version
47
- segments:
48
- - 0
49
42
  version: "0"
43
+ version:
50
44
  required_rubygems_version: !ruby/object:Gem::Requirement
51
45
  requirements:
52
46
  - - ">="
53
47
  - !ruby/object:Gem::Version
54
- segments:
55
- - 0
56
48
  version: "0"
49
+ version:
57
50
  requirements: []
58
51
 
59
52
  rubyforge_project:
60
- rubygems_version: 1.3.6
53
+ rubygems_version: 1.3.5
61
54
  signing_key:
62
55
  specification_version: 3
63
56
  summary: ruby future swiss knife