duck_puncher 2.10.2 → 2.11.0
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.
- 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
|
- - ">="
|