pluggability 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +5 -0
- data/lib/pluggability.rb +12 -2
- data/spec/pluggability_spec.rb +13 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57a5c158471203e554e57614f2a9bfac315e5e17
|
4
|
+
data.tar.gz: 0462302cec53ea0e65b248027405a1c1ba7bef9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2574d3c990583c90c43bacbba19738c34365070e6cd1f85daa05001c56274855923276c1d09401098cf4eb465a32e607e266fedc45596f6347f851b6a5ce8acc
|
7
|
+
data.tar.gz: 2282bb1dfcc0bc3b73df5142e396e47889e61cf6a7d32207eb0e7ab797f17fd79b3cf941204ae60f48c9f48541a27bd234a202df3473c7540ca1457e8c24ae5a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
data/lib/pluggability.rb
CHANGED
@@ -12,7 +12,7 @@ module Pluggability
|
|
12
12
|
|
13
13
|
|
14
14
|
# Library version
|
15
|
-
VERSION = '0.
|
15
|
+
VERSION = '0.4.0'
|
16
16
|
|
17
17
|
|
18
18
|
# An exception class for Pluggability specific errors.
|
@@ -143,12 +143,22 @@ module Pluggability
|
|
143
143
|
Pluggability.log.debug " no name-based variants for anonymous subclass %p" % [ subclass ]
|
144
144
|
end
|
145
145
|
|
146
|
-
keys.compact
|
146
|
+
keys.compact!
|
147
|
+
keys.uniq!
|
148
|
+
|
149
|
+
# Register it under each of its name variants
|
150
|
+
keys.each do |key|
|
147
151
|
Pluggability.log.info "Registering %s derivative of %s as %p" %
|
148
152
|
[ subclass.name, plugin_class.name, key ]
|
149
153
|
plugin_class.derivatives[ key ] = subclass
|
150
154
|
end
|
151
155
|
|
156
|
+
# Add a name attribute to it
|
157
|
+
class << subclass
|
158
|
+
attr_reader :plugin_name
|
159
|
+
end
|
160
|
+
subclass.instance_variable_set( :@plugin_name, keys.last )
|
161
|
+
|
152
162
|
super
|
153
163
|
end
|
154
164
|
|
data/spec/pluggability_spec.rb
CHANGED
@@ -207,6 +207,10 @@ describe Pluggability do
|
|
207
207
|
TestingPlugin.plugin_type
|
208
208
|
}.to raise_error( Pluggability::PluginError, /couldn't find plugin base/i )
|
209
209
|
end
|
210
|
+
|
211
|
+
it "knows what the simplest version of its plugin name is" do
|
212
|
+
expect( TestingPlugin.plugin_name ).to eq( 'testing' )
|
213
|
+
end
|
210
214
|
end
|
211
215
|
|
212
216
|
|
@@ -220,6 +224,9 @@ describe Pluggability do
|
|
220
224
|
expect( Plugin.create('black_sheep') ).to be_an_instance_of( BlackSheep )
|
221
225
|
end
|
222
226
|
|
227
|
+
it "knows what the simplest version of its plugin name is" do
|
228
|
+
expect( BlackSheep.plugin_name ).to eq( 'black_sheep' )
|
229
|
+
end
|
223
230
|
end
|
224
231
|
|
225
232
|
|
@@ -229,6 +236,9 @@ describe Pluggability do
|
|
229
236
|
expect( Plugin.create('loadable') ).to be_an_instance_of( Test::LoadablePlugin )
|
230
237
|
end
|
231
238
|
|
239
|
+
it "still knows what the simplest version of its plugin name is" do
|
240
|
+
expect( Test::LoadablePlugin.plugin_name ).to eq( 'loadable' )
|
241
|
+
end
|
232
242
|
end
|
233
243
|
|
234
244
|
|
@@ -238,6 +248,9 @@ describe Pluggability do
|
|
238
248
|
expect( Plugin.derivatives['subsub'] ).to eq( SubSubPlugin )
|
239
249
|
end
|
240
250
|
|
251
|
+
it "still knows what the simplest version of its plugin name is" do
|
252
|
+
expect( SubSubPlugin.plugin_name ).to eq( 'subsub' )
|
253
|
+
end
|
241
254
|
end
|
242
255
|
|
243
256
|
end
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Chase
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
6mKCwjpegytE0oifXfF8k75A9105cBnNiMZOe1tXiqYc/exCgWvbggurzDOcRkZu
|
32
32
|
/YSusaiDXHKU2O3Akc3htA==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: loggability
|
@@ -176,6 +176,7 @@ extra_rdoc_files:
|
|
176
176
|
- Manifest.txt
|
177
177
|
- README.rdoc
|
178
178
|
files:
|
179
|
+
- .gemtest
|
179
180
|
- ChangeLog
|
180
181
|
- History.rdoc
|
181
182
|
- Manifest.txt
|
@@ -184,7 +185,6 @@ files:
|
|
184
185
|
- lib/pluggability.rb
|
185
186
|
- spec/helpers.rb
|
186
187
|
- spec/pluggability_spec.rb
|
187
|
-
- .gemtest
|
188
188
|
homepage: https://bitbucket.org/ged/pluggability
|
189
189
|
licenses:
|
190
190
|
- BSD
|
@@ -207,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
207
|
version: '0'
|
208
208
|
requirements: []
|
209
209
|
rubyforge_project: pluggability
|
210
|
-
rubygems_version: 2.1
|
210
|
+
rubygems_version: 2.2.1
|
211
211
|
signing_key:
|
212
212
|
specification_version: 4
|
213
213
|
summary: Pluggability is a mixin module that turns an including class into a factory
|
metadata.gz.sig
CHANGED
Binary file
|