array-hooked 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,3 +18,7 @@ Updated to use module-cluster to ensure interface encapsulation.
18
18
  == 7/9/2012
19
19
 
20
20
  Removed module-cluster dependency.
21
+
22
+ == 7/10/2012
23
+
24
+ Reverted module-cluster dependency.
@@ -1,5 +1,6 @@
1
1
 
2
2
  require 'identifies_as'
3
+ require 'module/cluster'
3
4
 
4
5
  # namespaces that have to be declared ahead of time for proper load order
5
6
  require_relative './namespaces'
@@ -9,45 +10,6 @@ require_relative './requires.rb'
9
10
 
10
11
  class ::Array::Hooked < ::Array
11
12
 
12
- #####################
13
- # undecorated_set #
14
- #####################
15
-
16
- # Alias to original :[]= method. Used to perform actual set between hooks.
17
- # @param [Fixnum] index Index at which set is taking place.
18
- # @param [Object] object Element being set.
19
- # @return [Object] Element returned.
20
- alias_method :undecorated_set, :[]=
21
-
22
- #####################
23
- # undecorated_get #
24
- #####################
25
-
26
- # Alias to original :[]= method. Used to perform actual set between hooks.
27
- # @param [Fixnum] index Index at which set is taking place.
28
- # @param [Object] object Element being set.
29
- # @return [Object] Element returned.
30
- alias_method :undecorated_get, :[]
31
-
32
- ########################
33
- # undecorated_insert #
34
- ########################
35
-
36
- # Alias to original :insert method. Used to perform actual insert between hooks.
37
- # @param [Fixnum] index Index at which insert is taking place.
38
- # @param [Array<Object>] objects Elements being inserted.
39
- # @return [Object] Element returned.
40
- alias_method :undecorated_insert, :insert
41
-
42
- ###########################
43
- # undecorated_delete_at #
44
- ###########################
45
-
46
- # Alias to original :delete method. Used to perform actual delete between hooks.
47
- # @param [Fixnum] index Index at which delete is taking place.
48
- # @return [Object] Element returned.
49
- alias_method :undecorated_delete_at, :delete_at
50
-
51
13
  include ::Array::Hooked::ArrayInterface
52
14
 
53
15
  end
@@ -2,7 +2,64 @@
2
2
  module ::Array::Hooked::ArrayInterface
3
3
 
4
4
  instances_identify_as!( ::Array::Hooked )
5
+
6
+ extend ::Module::Cluster
7
+
8
+ cluster( :hooked_array_interface ).before_include.cascade_to( :class ) do |hooked_instance|
9
+
10
+ hooked_instance.class_eval do
11
+
12
+ #####################
13
+ # undecorated_set #
14
+ #####################
15
+
16
+ # Alias to original :[]= method. Used to perform actual set between hooks.
17
+ # @param [Fixnum] index Index at which set is taking place.
18
+ # @param [Object] object Element being set.
19
+ # @return [Object] Element returned.
20
+ unless method_defined?( :undecorated_set )
21
+ alias_method :undecorated_set, :[]=
22
+ end
23
+
24
+ #####################
25
+ # undecorated_get #
26
+ #####################
27
+
28
+ # Alias to original :[]= method. Used to perform actual set between hooks.
29
+ # @param [Fixnum] index Index at which set is taking place.
30
+ # @param [Object] object Element being set.
31
+ # @return [Object] Element returned.
32
+ unless method_defined?( :undecorated_get )
33
+ alias_method :undecorated_get, :[]
34
+ end
35
+
36
+ ########################
37
+ # undecorated_insert #
38
+ ########################
39
+
40
+ # Alias to original :insert method. Used to perform actual insert between hooks.
41
+ # @param [Fixnum] index Index at which insert is taking place.
42
+ # @param [Array<Object>] objects Elements being inserted.
43
+ # @return [Object] Element returned.
44
+ unless method_defined?( :undecorated_insert )
45
+ alias_method :undecorated_insert, :insert
46
+ end
47
+
48
+ ###########################
49
+ # undecorated_delete_at #
50
+ ###########################
51
+
52
+ # Alias to original :delete method. Used to perform actual delete between hooks.
53
+ # @param [Fixnum] index Index at which delete is taking place.
54
+ # @return [Object] Element returned.
55
+ unless method_defined?( :undecorated_delete_at )
56
+ alias_method :undecorated_delete_at, :delete_at
57
+ end
58
+
59
+ end
5
60
 
61
+ end
62
+
6
63
  ################
7
64
  # initialize #
8
65
  ################
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: array-hooked
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.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: 2012-07-09 00:00:00.000000000 Z
12
+ date: 2012-07-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: identifies_as
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: module-cluster
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  description: A subclass of Array that offers event hooks for pre-insert/pre-set/pre-delete,
31
47
  insert/set/delete. ::HookedArray offers implicit reference to a configuration instance.
32
48
  email: asher@ridiculouspower.com
@@ -39,7 +55,7 @@ files:
39
55
  - lib/array/namespaces.rb
40
56
  - lib/array/requires.rb
41
57
  - lib/array-hooked.rb
42
- - spec/array/hooked_spec.rb
58
+ - spec/Array/Hooked_spec.rb
43
59
  - README.md
44
60
  - CHANGELOG.rdoc
45
61
  homepage: http://rubygems.org/gems/array-hooked
@@ -53,7 +69,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
69
  requirements:
54
70
  - - ! '>='
55
71
  - !ruby/object:Gem::Version
56
- version: 1.9.1
72
+ version: '0'
57
73
  required_rubygems_version: !ruby/object:Gem::Requirement
58
74
  none: false
59
75
  requirements: