pluggability 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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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
- 4MAX2qqKX/FKXqmFO+AGsbwYTEds1mksBF3fGsFgsQWxftG8GfZQ9+Cyu2+l1eOw
23
- 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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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
- st2AGD4rb1l0ia7PfubcBThSIdz61eCb8gRi/RiZZwb3/7+eyEncLJzt2Ob9fGSF
36
- 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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