pluggability 0.8.0 → 0.9.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
  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