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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b90528da85af775bec863e6fd66ecd4d838bdb3c
4
- data.tar.gz: 7abcae4ffb76c25dd186741d70880a7265d57a21
3
+ metadata.gz: 810a0e182430aafb5d23731ac2d01a456675073b
4
+ data.tar.gz: faf6bff2544dd61bbf9a91bebcfc6bba7609ec13
5
5
  SHA512:
6
- metadata.gz: cce916b3b3ae5c0799f956838875f3ccad3aad93c34b47a7114b36ca3a7a9a7dbaa5b044f691edeb240f33c3722ac8d6d0da509757155dcdb3e68111c12a00a0
7
- data.tar.gz: 96dcef1ac2b2bafcacb49ae2558c7051d8b489ff583196eb3adfd5d54efe50a287829672abd76f1d209f581ba0a3b0fd44a37ba4a811f35fdb5ebb9b4efcf24b
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
- DuckPuncher.register :Donald, class: 'Array', if: -> { !defined?(::Rails) || Rails.env.development? }
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#require__ will try to require a gem, or, if it's not found, then _download_ it! It will also keep track of any
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.add_runtime_dependency "usable", "~> 1", "< 2"
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'
@@ -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).tap { |k| punch target: k }
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
@@ -1,3 +1,3 @@
1
1
  module DuckPuncher
2
- VERSION = '2.10.2'.freeze
2
+ VERSION = '2.11.0'.freeze
3
3
  end
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.10.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-17 00:00:00.000000000 Z
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: '0'
142
+ version: 2.0.0
143
143
  required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - ">="