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 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
  - - ">="