pluggability 0.8.0 → 0.9.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
  SHA256:
3
- metadata.gz: 4484023e3e262179c2c404956a61d7b2f45e39a4f35ec3a467ebb58487248a8c
4
- data.tar.gz: 18c4dc97074347467326b56caaee97d198224179b5a2b927653999f3ef65cca6
3
+ metadata.gz: 843f2f58748eaeb19465a3e12811c495c218b84bfd0561dd7266b1aa039c2088
4
+ data.tar.gz: 376ce248e38a0547faaff01bfc033baf099e3cc33431387f56c2f5f789e896cf
5
5
  SHA512:
6
- metadata.gz: c91ad9882dbe4106aeb597d48400a5e2ca9e83fb89ac3961f6cacbd20bd2fdeb437e4b3e1e16bcefe4822c468865c91b82ba12dbdb311f6add6728de95dd46b4
7
- data.tar.gz: 74b488aee0aae9ff89b74631f1a412b27356a51f3e62653d61715226871bd685ae9051880d5f26c573049b9944fbc50b239b86becae8b185d19e7e373180d2d7
6
+ metadata.gz: 26b4d2466c36294eb1d336c88ff1a61b6c73283626d21766d3929b9ce86babc8144889c7f27adf2fd6b44b5177c2988b4c7f4b60ce9b66e9ad8825d2dc40f6c6
7
+ data.tar.gz: d99e802e78109839a9e8df5ff75d9493323a4fb72328f62c63d841cdf5199d73ba3aac0bd46f161db1c83cb7f70ef4c74c28485b7ecb9ff97c9bc2d83d9ba96d
checksums.yaml.gz.sig CHANGED
Binary file
data/History.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # Release History for pluggability
2
2
 
3
3
  ---
4
+
5
+ ## v0.9.0 [2023-06-08] Michael Granger <ged@faeriemud.org>
6
+
7
+ Improvements:
8
+
9
+ - Add support for keyword arguments.
10
+
11
+
4
12
  ## v0.8.0 [2022-12-01] Michael Granger <ged@faeriemud.org>
5
13
 
6
14
  Improvements:
data/lib/pluggability.rb CHANGED
@@ -12,7 +12,7 @@ module Pluggability
12
12
 
13
13
 
14
14
  # Library version
15
- VERSION = '0.8.0'
15
+ VERSION = '0.9.0'
16
16
 
17
17
 
18
18
  # An exception class for Pluggability specific errors.
@@ -202,11 +202,11 @@ module Pluggability
202
202
  ### obj = Listener.create( 'FooListener' )
203
203
  ### obj = Listener.create( FooListener )
204
204
  ### obj = Listener.create( 'Foo' )
205
- def create( class_name, *args, &block )
205
+ def create( class_name, *args, **keyword_args, &block )
206
206
  subclass = get_subclass( class_name )
207
207
 
208
208
  begin
209
- return subclass.new( *args, &block )
209
+ return subclass.new( *args, **keyword_args, &block )
210
210
  rescue => err
211
211
  nicetrace = err.backtrace.reject {|frame| /#{__FILE__}/ =~ frame}
212
212
  msg = "When creating '#{class_name}': " + err.message
@@ -21,6 +21,12 @@ class Carbon14Robot < Plugin; end
21
21
  module Test
22
22
  class LoadablePlugin < Plugin; end
23
23
  end
24
+ class KeywordTest < Plugin
25
+ def initialize( **kwargs)
26
+ @kwargs = kwargs
27
+ end
28
+ attr_reader :kwargs
29
+ end
24
30
 
25
31
  class SubSubPlugin < SubPlugin; end
26
32
 
@@ -212,6 +218,12 @@ describe Pluggability do
212
218
  Plugin.load_all
213
219
  end
214
220
 
221
+
222
+ it "passes keyword arguments when creating derivatives" do
223
+ result = Plugin.create( KeywordTest, foo: :bar, baz: 2 )
224
+ expect( result.kwargs ).to eq({ foo: :bar, baz: 2 })
225
+ end
226
+
215
227
  end
216
228
 
217
229
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pluggability
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,9 +11,9 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIID+DCCAmCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMjAxMDcyMzU4MTRaFw0yMzAxMDcyMzU4
16
- MTRaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
14
+ MIID+DCCAmCgAwIBAgIBBTANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
+ REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMzAxMTYxNzE2MDlaFw0yNDAxMTYxNzE2
16
+ MDlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
17
17
  hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
18
18
  L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
19
19
  M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
@@ -24,17 +24,17 @@ cert_chain:
24
24
  ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
25
25
  N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
26
26
  VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
27
- 9w0BAQsFAAOCAYEASrm1AbEoxACZ9WXJH3R5axV3U0CA4xaETlL2YT+2nOfVBMQ9
28
- 0ZlkPx6j4ghKJgAIi1TMfDM2JyPJsppQh8tiNccDjWc62UZRY/dq26cMqf/lcI+a
29
- 6YBuEYvzZfearwVs8tHnXtwYV3WSCoCOQaB+nq2lA1O+nkKNl41WOsVbNama5jx3
30
- 8cQtVSEEmZy6jIDJ8c5TmBJ7BQUDEUEWA/A3V42Xyctoj7DvUXWE0lP+X6ypAVSr
31
- lFh3TS64D7NTvxkmg7natUoCvobl6kGl4yMaqE4YRTlfuzhpf91TSOntClqrAOsS
32
- K1s56WndQj3IoBocdY9mQhDZLtLHofSkymoP8btBlj5SsN24TiF0VMSZlctSCYZg
33
- GKyHim/MMlIfGOWsgfioq5jzwmql7W4CDubbb8Lkg70v+hN2E/MnNVAcNE3gyaGc
34
- P5YP5BAbNW+gvd3QHRiWTTuhgHrdDnGdXg93N2M5KHn1ug8BtPLQwlcFwEpKnlLn
35
- btEP+7EplFuoiMfd
27
+ 9w0BAQsFAAOCAYEARYCeUVBWARNKqF0cvNnLJvFf4hdW2+Rtc7NfC5jQvX9a1oom
28
+ sfVvS96eER/9cbrphu+vc59EELw4zT+RY3/IesnoE7CaX6zIOFmSmG7K61OHsSLR
29
+ KqMygcWwyuPXT2JG7JsGHuxbzgaRWe29HbSjBbLYxiMH8Zxh4tKutxzKF7jb0Ggq
30
+ KAf9MH5LwG8IHVIfV5drT14PvgR3tcvmrn1timPyJl+eZ3LNnm9ofOCweuZCq1cy
31
+ 4Q8LV3vP2Cofy9q+az3DHdaUGlmMiZZZqKixDr1KSS9nvh0ZrKMOUL1sWj/IaxrQ
32
+ RV3y6td14q49t+xnbj00hPlbW7uE2nLJLt2NAoXiE1Nonndz1seB2c6HL79W9fps
33
+ E/O12pQjCp/aPUZMt8/8tKW31RIy/KP8XO6OTJNWA8A/oNEI0g5p/LmmEtJKWYr1
34
+ WmEdESlpWhzFECctefIF2lsN9vaOuof57RM77t2otrtcscDtNarIqjZsIyqtDvtL
35
+ DttITiit0Vwz7bY0
36
36
  -----END CERTIFICATE-----
37
- date: 2022-12-01 00:00:00.000000000 Z
37
+ date: 2023-06-08 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: loggability
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubygems_version: 3.3.7
118
+ rubygems_version: 3.3.26
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: Pluggability is a toolkit for creating plugins.
metadata.gz.sig CHANGED
Binary file