call_super 0.0.2 → 0.0.3

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/CHANGELOG.md CHANGED
@@ -0,0 +1,8 @@
1
+
2
+ == 7/8/2013
3
+
4
+ Initial release
5
+
6
+ == 7/30/2013
7
+
8
+ Added Module#include and Object#extend.
data/lib/call_super.rb CHANGED
@@ -11,3 +11,4 @@ end
11
11
 
12
12
  require_relative '../lib_ext/class.rb'
13
13
  require_relative '../lib_ext/module.rb'
14
+ require_relative '../lib_ext/object.rb'
data/lib_ext/module.rb CHANGED
@@ -4,6 +4,26 @@ class ::Module
4
4
 
5
5
  include ::CallSuper
6
6
 
7
+ ######################
8
+ # original_include #
9
+ ######################
10
+
11
+ alias_method :original_include, :include
12
+
13
+ #############
14
+ # include #
15
+ #############
16
+
17
+ ###
18
+ # Override Object#include so that modules extending Module instance can define #include.
19
+ #
20
+ def include( *modules )
21
+
22
+ super if defined?( super )
23
+ original_include( *modules )
24
+
25
+ end
26
+
7
27
  ##############################
8
28
  # original_append_features #
9
29
  ##############################
@@ -15,7 +35,7 @@ class ::Module
15
35
  #####################
16
36
 
17
37
  ###
18
- # Override Module.included so that modules extending Module can define #included.
38
+ # Override Module.included so that modules extending Module can define #append_features.
19
39
  #
20
40
  def append_features( hooked_instance )
21
41
 
@@ -48,7 +68,7 @@ class ::Module
48
68
  ###################
49
69
 
50
70
  ###
51
- # Override Module.extended so that modules extending Module can define #extended.
71
+ # Override Module.extended so that modules extending Module can define #extend_object.
52
72
  #
53
73
  def extend_object( hooked_instance )
54
74
 
data/lib_ext/object.rb ADDED
@@ -0,0 +1,27 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ class ::Object
4
+
5
+ include ::CallSuper
6
+
7
+ #####################
8
+ # original_extend #
9
+ #####################
10
+
11
+ alias_method :original_extend, :extend
12
+
13
+ ############
14
+ # extend #
15
+ ############
16
+
17
+ ###
18
+ # Override Object.extend so that modules extending Object instance can define #extend.
19
+ #
20
+ def extend( *modules )
21
+
22
+ super if defined?( super )
23
+ original_extend( *modules )
24
+
25
+ end
26
+
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: call_super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-08 00:00:00.000000000 Z
12
+ date: 2013-07-30 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Cause Object#inherited, Module#extended, Module#extend_object, Module#included,
15
15
  Module#append_features to call super if defined.
@@ -21,6 +21,7 @@ files:
21
21
  - lib/call_super.rb
22
22
  - lib_ext/class.rb
23
23
  - lib_ext/module.rb
24
+ - lib_ext/object.rb
24
25
  - README.md
25
26
  - CHANGELOG.md
26
27
  homepage: http://rubygems.org/gems/call_super