mixit 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/mixit/version.rb +1 -1
  2. data/lib/mixit.rb +15 -13
  3. metadata +7 -7
data/lib/mixit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Mixit
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/mixit.rb CHANGED
@@ -28,20 +28,22 @@ class Mixit
28
28
  if block.arity == 1
29
29
  block.call extend!(receiver, true)
30
30
  else
31
- ivars = receiver.instance_variables
32
- extend!(receiver, false).instance_eval(&block)
33
-
34
- # Remove instance variables added by @modules, or &block from 'receiver'.
35
- # We want to restore the calling scope to its previous state.
36
- (receiver.instance_variables - ivars).each do |ivar|
37
- receiver.send(:remove_instance_variable, ivar)
38
- end
31
+ begin
32
+ ivars = receiver.instance_variables
33
+ extend!(receiver, false).instance_eval(&block)
34
+ ensure
35
+ # Remove instance variables added by @modules, or &block from 'receiver'.
36
+ # We want to restore the calling scope to its previous state.
37
+ (receiver.instance_variables - ivars).each do |ivar|
38
+ receiver.send(:remove_instance_variable, ivar)
39
+ end
39
40
 
40
- # Remove methods added by @modules from 'receiver'.
41
- # We want to restore the calling scope to its previous state.
42
- @modules.each do |mod|
43
- mod.instance_methods(false).each do |meth|
44
- mod.send(:remove_method, meth)
41
+ # Remove methods added by @modules from 'receiver'.
42
+ # We want to restore the calling scope to its previous state.
43
+ @modules.each do |mod|
44
+ mod.instance_methods(false).each do |meth|
45
+ mod.send(:remove_method, meth)
46
+ end
45
47
  end
46
48
  end
47
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70294493576860 !ruby/object:Gem::Requirement
16
+ requirement: &70150457564540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70294493576860
24
+ version_requirements: *70150457564540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70294493576360 !ruby/object:Gem::Requirement
27
+ requirement: &70150457564040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.5'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70294493576360
35
+ version_requirements: *70150457564040
36
36
  description: Temporarily extend the calling scope of a block with instance methods
37
37
  from a module.
38
38
  email:
@@ -66,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
66
  version: '0'
67
67
  segments:
68
68
  - 0
69
- hash: 4457976507324133179
69
+ hash: -222401743341189092
70
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  segments:
77
77
  - 0
78
- hash: 4457976507324133179
78
+ hash: -222401743341189092
79
79
  requirements: []
80
80
  rubyforge_project: mixit
81
81
  rubygems_version: 1.8.11