duck_puncher 2.10.2 → 2.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -2
- data/duck_puncher.gemspec +3 -1
- data/lib/duck_puncher/duck.rb +4 -2
- data/lib/duck_puncher/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 810a0e182430aafb5d23731ac2d01a456675073b
|
4
|
+
data.tar.gz: faf6bff2544dd61bbf9a91bebcfc6bba7609ec13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b266c73a702ae2086b0bf603bd48cbd3b972e238b46319eaa25c1e2c8a1eb21027297156eb1e7f6abe00393f5b3aab0a5b7f34dd08c8b0a0cb70c4f01353632b
|
7
|
+
data.tar.gz: 1a5977e96defe3c647581d8440c1721efccd1da9b4435bf8e8839175a5c3fdd8649772d43f7fce6afa731b7394653671befa58547f084a8ef2c779d3df2cc8a5
|
data/README.md
CHANGED
@@ -89,7 +89,14 @@ module Donald
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
-
|
92
|
+
module Daisy
|
93
|
+
def quack
|
94
|
+
"Hi, I'm Daisy"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
DuckPuncher.register :Donald, class: 'Array', if: -> { 'some condition' }
|
99
|
+
DuckPuncher.register :Daisy, class: 'Array'
|
93
100
|
```
|
94
101
|
|
95
102
|
The register method takes the same options as [Duck#initialize](https://github.com/ridiculous/duck_puncher/blob/master/lib/duck_puncher/duck.rb#L11)
|
@@ -105,9 +112,18 @@ DuckPuncher.punch! :Object, only: :punch
|
|
105
112
|
[].punch(:Donald).tap_tap
|
106
113
|
```
|
107
114
|
|
115
|
+
Punches can also be stacked together:
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
DuckPuncher.punch! :Object, only: :punch
|
119
|
+
ducks = [].punch(:Donald).punch(:Daisy)
|
120
|
+
ducks.tap_tap
|
121
|
+
ducks.quack
|
122
|
+
```
|
123
|
+
|
108
124
|
## Experimental
|
109
125
|
|
110
|
-
__Object#
|
126
|
+
__Object#require!__ will try to require a gem, or, if it's not found, then _download_ it! It will also keep track of any
|
111
127
|
downloaded gems and load them for subsequent IRB/rails console sessions. Gems are _not_
|
112
128
|
saved to the Gemfile.
|
113
129
|
|
data/duck_puncher.gemspec
CHANGED
@@ -18,7 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
21
|
+
spec.required_ruby_version = ">= 2.0.0"
|
22
|
+
|
23
|
+
spec.add_runtime_dependency "usable", "~> 1.3", "< 2"
|
22
24
|
|
23
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
26
|
spec.add_development_dependency "rake", '~> 10.1'
|
data/lib/duck_puncher/duck.rb
CHANGED
@@ -25,7 +25,6 @@ module DuckPuncher
|
|
25
25
|
options[:before].call(target) if options[:before]
|
26
26
|
target.extend Usable
|
27
27
|
target.usable DuckPuncher::Ducks.const_get(name), opts
|
28
|
-
options[:after].call(target) if options[:after]
|
29
28
|
target
|
30
29
|
end
|
31
30
|
|
@@ -36,7 +35,10 @@ module DuckPuncher
|
|
36
35
|
# @param [Class] obj The object being punched
|
37
36
|
def delegated(obj = nil)
|
38
37
|
obj_class = obj ? obj.class : klass
|
39
|
-
DelegateClass(obj_class)
|
38
|
+
klass = DelegateClass(obj_class)
|
39
|
+
punch target: klass
|
40
|
+
klass.usable DuckPuncher::Ducks::Object, only: :punch, method: :prepend
|
41
|
+
klass
|
40
42
|
end
|
41
43
|
|
42
44
|
def classify
|
data/lib/duck_puncher/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duck_puncher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: usable
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1'
|
19
|
+
version: '1.3'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1'
|
29
|
+
version: '1.3'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2'
|
@@ -139,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
139
|
requirements:
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
142
|
+
version: 2.0.0
|
143
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
145
|
- - ">="
|