pluggability 0.6.0 → 0.7.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.
data/History.md CHANGED
@@ -1,5 +1,18 @@
1
+ # Release History for pluggability
2
+
3
+ ---
4
+
5
+ ## v0.7.0 [2020-02-05] Michael Granger <ged@faeriemud.org>
6
+
7
+ Improvements:
8
+
9
+ - Updated for Ruby 2.7
10
+
11
+
1
12
  ## v0.6.0 [2018-03-12] Michael Granger <ged@FaerieMUD.org>
2
13
 
14
+ Bugfix:
15
+
3
16
  - Switch back to require for loading derivatives
4
17
 
5
18
 
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # pluggability
2
2
 
3
- project
4
- : https://bitbucket.org/ged/pluggability
3
+ home
4
+ : https://hg.sr.ht/~ged/pluggability
5
5
 
6
6
  docs
7
- : http://deveiate.org/code/pluggability
7
+ : https://deveiate.org/code/pluggability
8
8
 
9
9
  github
10
- : http://github.com/ged/pluggability
10
+ : https://github.com/ged/pluggability
11
11
 
12
12
 
13
13
  ## Description
@@ -239,9 +239,15 @@ This task will install any missing dependencies, run the tests/specs,
239
239
  and generate the API documentation.
240
240
 
241
241
 
242
+ ## Authors
243
+
244
+ - Michael Granger <ged@faeriemud.org>
245
+ - Martin Chase <outofculture@gmail.com>
246
+
247
+
242
248
  ## License
243
249
 
244
- Copyright (c) 2008-2018, Michael Granger and Martin Chase
250
+ Copyright (c) 2008-2020, Michael Granger and Martin Chase
245
251
  All rights reserved.
246
252
 
247
253
  Redistribution and use in source and binary forms, with or without
data/Rakefile CHANGED
@@ -1,87 +1,9 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'rake/clean'
3
+ require 'rake/deveiate'
4
4
 
5
- begin
6
- require 'hoe'
7
- rescue LoadError
8
- abort "This Rakefile requires 'hoe' (gem install hoe)"
5
+ Rake::DevEiate.setup( 'pluggability' ) do |project|
6
+ project.publish_to = 'deveiate:/usr/local/www/public/code'
9
7
  end
10
8
 
11
- GEMSPEC = 'pluggability.gemspec'
12
-
13
- Hoe.plugin :mercurial
14
- Hoe.plugin :signing
15
- Hoe.plugin :deveiate
16
-
17
- Hoe.plugins.delete :rubyforge
18
-
19
- hoespec = Hoe.spec 'pluggability' do |spec|
20
- spec.readme_file = 'README.md'
21
- spec.history_file = 'History.md'
22
- spec.extra_rdoc_files = Rake::FileList[ '*.rdoc', '*.md' ]
23
- spec.license 'BSD-3-Clause'
24
- spec.urls = {
25
- home: 'http://bitbucket.org/ged/pluggability',
26
- code: 'http://bitbucket.org/ged/pluggability',
27
- docs: 'http://deveiate.org/code/pluggability',
28
- github: 'http://github.com/ged/pluggability',
29
- }
30
-
31
- spec.developer 'Martin Chase', 'stillflame@FaerieMUD.org'
32
- spec.developer 'Michael Granger', 'ged@FaerieMUD.org'
33
-
34
- spec.dependency 'loggability', '~> 0.12'
35
- spec.dependency 'hoe-deveiate', '~> 0.9', :development
36
- spec.dependency 'rdoc', '~> 5.1', :development
37
-
38
- spec.require_ruby_version( '>=2.3.4' )
39
- spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
40
- spec.check_history_on_release = true if spec.respond_to?( :check_history_on_release= )
41
-
42
- spec.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
43
- end
44
-
45
- ENV['VERSION'] ||= hoespec.spec.version.to_s
46
-
47
- # Ensure the specs pass before checking in
48
- task 'hg:precheckin' => [ :check_history, :check_manifest, :gemspec, :spec ]
49
-
50
-
51
- desc "Build a coverage report"
52
- task :coverage do
53
- ENV["COVERAGE"] = 'yes'
54
- Rake::Task[:spec].invoke
55
- end
56
- CLOBBER.include( 'coverage' )
57
-
58
-
59
- # Use the fivefish formatter for docs generated from development checkout
60
- if File.directory?( '.hg' )
61
- require 'rdoc/task'
62
-
63
- Rake::Task[ 'docs' ].clear
64
- RDoc::Task.new( 'docs' ) do |rdoc|
65
- rdoc.main = "README.rdoc"
66
- rdoc.rdoc_files.include( "*.rdoc", "ChangeLog", "lib/**/*.rb" )
67
- rdoc.generator = :fivefish
68
- rdoc.title = "Pluggability"
69
- rdoc.rdoc_dir = 'doc'
70
- end
71
- end
72
-
73
- task :gemspec => [ 'ChangeLog', __FILE__, 'Manifest.txt', GEMSPEC ]
74
- task GEMSPEC do |task|
75
- spec = $hoespec.spec
76
- spec.files.delete( '.gemtest' )
77
- spec.signing_key = nil
78
- spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
79
- File.open( task.name, 'w' ) do |fh|
80
- fh.write( spec.to_ruby )
81
- end
82
- end
83
-
84
- CLOBBER.include( GEMSPEC.to_s )
85
-
86
- task :default => :gemspec
87
9
 
@@ -12,7 +12,7 @@ module Pluggability
12
12
 
13
13
 
14
14
  # Library version
15
- VERSION = '0.6.0'
15
+ VERSION = '0.7.0'
16
16
 
17
17
 
18
18
  # An exception class for Pluggability specific errors.
@@ -346,7 +346,7 @@ module Pluggability
346
346
  raise Pluggability::PluginError, errmsg
347
347
  end
348
348
 
349
- Kernel.require( plugin_path.untaint )
349
+ Kernel.require( plugin_path )
350
350
 
351
351
  return plugin_path
352
352
  end
@@ -11,6 +11,7 @@ RSpec.configure do |config|
11
11
  config.run_all_when_everything_filtered = true
12
12
  config.filter_run :focus
13
13
  config.order = 'random'
14
+ config.warnings = true
14
15
  config.mock_with( :rspec ) do |mock_config|
15
16
  mock_config.syntax = :expect
16
17
  end
metadata CHANGED
@@ -1,42 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pluggability
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
- - Martin Chase
8
7
  - Michael Granger
8
+ - Martin Chase
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBBQUAA4IBgQB/qyi5pCjK8ceoKalfVAjS
30
- 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
- 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
- DuEzbEMfaOUYjU9RuB48vr4q8yRft0ww+3jq5iwNkrX1buL2pwBbyvgms6D/BV41
33
- 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
- 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
- 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
- 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
- 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
36
+ XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
38
37
  -----END CERTIFICATE-----
39
- date: 2018-03-21 00:00:00.000000000 Z
38
+ date: 2020-02-05 00:00:00.000000000 Z
40
39
  dependencies:
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: loggability
@@ -44,113 +43,35 @@ dependencies:
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '0.12'
46
+ version: '0.15'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '0.12'
55
- - !ruby/object:Gem::Dependency
56
- name: hoe-mercurial
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.4'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.4'
53
+ version: '0.15'
69
54
  - !ruby/object:Gem::Dependency
70
- name: hoe-deveiate
55
+ name: rake-deveiate
71
56
  requirement: !ruby/object:Gem::Requirement
72
57
  requirements:
73
58
  - - "~>"
74
59
  - !ruby/object:Gem::Version
75
- version: '0.9'
60
+ version: '0.8'
76
61
  type: :development
77
62
  prerelease: false
78
63
  version_requirements: !ruby/object:Gem::Requirement
79
64
  requirements:
80
65
  - - "~>"
81
66
  - !ruby/object:Gem::Version
82
- version: '0.9'
83
- - !ruby/object:Gem::Dependency
84
- name: hoe-highline
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.2'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.2'
97
- - !ruby/object:Gem::Dependency
98
- name: rdoc
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '5.1'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '5.1'
111
- - !ruby/object:Gem::Dependency
112
- name: hoe
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.16'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3.16'
125
- description: "Pluggability is a toolkit for creating plugins.\n\nIt provides a mixin
126
- that extends your class with methods to load and instantiate its subclasses by name.
127
- So instead of:\n\n require 'acme/adapter/png'\n png_adapter = Acme::Adapter::PNG.new(
128
- 'file.png' )\n \nyou can do:\n\n require 'acme/adapter'\n png_adapter = Acme::Adapter.create(
129
- :png, 'file.png' )\n\nA full example of where this might be useful is in a program
130
- which generates\noutput with a 'driver' object, which provides a unified interface
131
- but generates\ndifferent kinds of output.\n\nFirst the abstract base class, which
132
- is extended with Pluggability:\n\n # in mygem/driver.rb:\n require 'pluggability'\n
133
- \ require 'mygem' unless defined?( MyGem )\n \n class MyGem::Driver\n extend
134
- Pluggability\n plugin_prefixes \"mygem/drivers\"\n end\n\nWe can have
135
- one driver that outputs PDF documents:\n\n # mygem/drivers/pdf.rb:\n require
136
- 'mygem/driver' unless defined?( MyGem::Driver )\n \n class MyGem::Driver::PDF
137
- < Driver\n ...implementation...\n end\n\nand another that outputs plain
138
- ascii text:\n\n #mygem/drivers/ascii.rb:\n require 'mygem/driver' unless defined?(
139
- MyGem::Driver )\n \n class MyGem::Driver::ASCII < Driver\n ...implementation...\n
140
- \ end\n\nNow the driver is configurable by the end-user, who can just set\nit
141
- by its short name:\n\n require 'mygem'\n \n config[:driver_type] #=> \"pdf\"\n
142
- \ driver = MyGem::Driver.create( config[:driver_type] )\n driver.class #=>
143
- MyGem::Driver::PDF\n\n # You can also pass arguments to the constructor, too:\n
144
- \ ascii_driver = MyGem::Driver.create( :ascii, :columns => 80 )"
67
+ version: '0.8'
68
+ description: Pluggability is a toolkit for creating plugins.
145
69
  email:
146
- - stillflame@FaerieMUD.org
147
- - ged@FaerieMUD.org
70
+ - ged@faeriemud.org
71
+ - outofculture@gmail.com
148
72
  executables: []
149
73
  extensions: []
150
- extra_rdoc_files:
151
- - History.md
152
- - Manifest.txt
153
- - README.md
74
+ extra_rdoc_files: []
154
75
  files:
155
76
  - ChangeLog
156
77
  - History.md
@@ -160,30 +81,27 @@ files:
160
81
  - lib/pluggability.rb
161
82
  - spec/helpers.rb
162
83
  - spec/pluggability_spec.rb
163
- homepage: http://bitbucket.org/ged/pluggability
84
+ homepage: https://hg.sr.ht/~ged/pluggability
164
85
  licenses:
165
86
  - BSD-3-Clause
166
87
  metadata: {}
167
88
  post_install_message:
168
- rdoc_options:
169
- - "--main"
170
- - README.md
89
+ rdoc_options: []
171
90
  require_paths:
172
91
  - lib
173
92
  required_ruby_version: !ruby/object:Gem::Requirement
174
93
  requirements:
175
94
  - - ">="
176
95
  - !ruby/object:Gem::Version
177
- version: 2.3.4
96
+ version: '0'
178
97
  required_rubygems_version: !ruby/object:Gem::Requirement
179
98
  requirements:
180
99
  - - ">="
181
100
  - !ruby/object:Gem::Version
182
101
  version: '0'
183
102
  requirements: []
184
- rubyforge_project:
185
- rubygems_version: 2.7.4
103
+ rubygems_version: 3.1.2
186
104
  signing_key:
187
105
  specification_version: 4
188
- summary: Pluggability is a toolkit for creating plugins
106
+ summary: Pluggability is a toolkit for creating plugins.
189
107
  test_files: []
metadata.gz.sig CHANGED
Binary file