array-hooked 1.1.2 → 1.1.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.rdoc +4 -0
- data/lib/array/hooked.rb +1 -39
- data/lib/array/hooked/array_interface.rb +57 -0
- data/spec/{array/hooked_spec.rb → Array/Hooked_spec.rb} +0 -0
- metadata +20 -4
data/CHANGELOG.rdoc
CHANGED
data/lib/array/hooked.rb
CHANGED
@@ -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
|
################
|
File without changes
|
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.
|
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-
|
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/
|
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:
|
72
|
+
version: '0'
|
57
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
74
|
none: false
|
59
75
|
requirements:
|