gem_plugin 0.1
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/COPYING +504 -0
- data/LICENSE +58 -0
- data/README +115 -0
- data/Rakefile +35 -0
- data/doc/rdoc/classes/GemPlugin.html +247 -0
- data/doc/rdoc/classes/GemPlugin.src/M000001.html +19 -0
- data/doc/rdoc/classes/GemPlugin/Base.html +193 -0
- data/doc/rdoc/classes/GemPlugin/Base.src/M000002.html +20 -0
- data/doc/rdoc/classes/GemPlugin/Base.src/M000003.html +18 -0
- data/doc/rdoc/classes/GemPlugin/Base.src/M000004.html +18 -0
- data/doc/rdoc/classes/GemPlugin/Manager.html +262 -0
- data/doc/rdoc/classes/GemPlugin/Manager.src/M000005.html +19 -0
- data/doc/rdoc/classes/GemPlugin/Manager.src/M000006.html +43 -0
- data/doc/rdoc/classes/GemPlugin/Manager.src/M000007.html +19 -0
- data/doc/rdoc/classes/GemPlugin/Manager.src/M000008.html +29 -0
- data/doc/rdoc/classes/GemPlugin/Manager.src/M000009.html +18 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/COPYING.html +756 -0
- data/doc/rdoc/files/LICENSE.html +164 -0
- data/doc/rdoc/files/README.html +273 -0
- data/doc/rdoc/files/lib/gem_plugin_rb.html +109 -0
- data/doc/rdoc/fr_class_index.html +29 -0
- data/doc/rdoc/fr_file_index.html +30 -0
- data/doc/rdoc/fr_method_index.html +35 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +208 -0
- data/lib/gem_plugin.rb +204 -0
- data/test/test_plugins.rb +73 -0
- data/tools/rakehelp.rb +111 -0
- metadata +80 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'gem_plugin'
|
3
|
+
|
4
|
+
include GemPlugin
|
5
|
+
|
6
|
+
class ATestPlugin < GemPlugin::Plugin "/stuff"
|
7
|
+
end
|
8
|
+
|
9
|
+
class First < GemPlugin::Plugin "/commands"
|
10
|
+
def initialize(options = {})
|
11
|
+
puts "First with options: #{options.inspect}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Second < GemPlugin::Plugin "/commands"
|
16
|
+
def initialize(options = {})
|
17
|
+
puts "Second with options: #{options.inspect}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Last < GemPlugin::Plugin "/commands"
|
22
|
+
def initialize(options = {})
|
23
|
+
puts "Last with options: #{options.inspect}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
class PluginTest < Test::Unit::TestCase
|
29
|
+
|
30
|
+
def setup
|
31
|
+
@pmgr = Manager.instance
|
32
|
+
@pmgr.load({"rails" => EXCLUDE})
|
33
|
+
@categories = ["/commands"]
|
34
|
+
@names = ["/first", "/second", "/last", "/atestplugin"]
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_load_plugins
|
38
|
+
puts "#{@pmgr.available.inspect}"
|
39
|
+
@pmgr.available.each {|cat,plugins|
|
40
|
+
plugins.each do |n,p|
|
41
|
+
puts "TEST: #{cat}#{n}"
|
42
|
+
assert @names.include?(n)
|
43
|
+
end
|
44
|
+
}
|
45
|
+
|
46
|
+
@pmgr.load
|
47
|
+
@pmgr.available.each do |cat,plugins|
|
48
|
+
plugins.each do |n,p|
|
49
|
+
STDERR.puts "#{cat}#{n}"
|
50
|
+
plugin = @pmgr.create("#{cat}#{n}", options={"name" => p})
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_similar_uris
|
56
|
+
|
57
|
+
@pmgr.register("/test", "/testme", ATestPlugin)
|
58
|
+
@pmgr.register("/test2", "/testme", ATestPlugin)
|
59
|
+
|
60
|
+
assert_equal @pmgr.create("/test/testme").class, ATestPlugin
|
61
|
+
assert_equal @pmgr.create("/test2/testme").class, ATestPlugin
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
def test_create
|
67
|
+
last = @pmgr.create("/commands/last", "test" => "stuff")
|
68
|
+
assert last != nil, "Didn't make the right plugin"
|
69
|
+
first = @pmgr.create("/commands/last")
|
70
|
+
assert first != nil, "Didn't make the right plugin"
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/tools/rakehelp.rb
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
|
2
|
+
def make(makedir)
|
3
|
+
Dir.chdir(makedir) do
|
4
|
+
sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
def extconf(dir)
|
10
|
+
Dir.chdir(dir) do ruby "extconf.rb" end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def setup_tests
|
15
|
+
Rake::TestTask.new do |t|
|
16
|
+
t.libs << "test"
|
17
|
+
t.test_files = FileList['test/test*.rb']
|
18
|
+
t.verbose = true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def setup_clean otherfiles
|
24
|
+
files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles
|
25
|
+
CLEAN.include(files)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def setup_rdoc files
|
30
|
+
Rake::RDocTask.new do |rdoc|
|
31
|
+
rdoc.rdoc_dir = 'doc/rdoc'
|
32
|
+
rdoc.options << '--line-numbers'
|
33
|
+
rdoc.rdoc_files.add(files)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def setup_extension(dir, extension)
|
39
|
+
ext = "ext/#{dir}"
|
40
|
+
ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
|
41
|
+
ext_files = FileList[
|
42
|
+
"#{ext}/*.c",
|
43
|
+
"#{ext}/*.h",
|
44
|
+
"#{ext}/extconf.rb",
|
45
|
+
"#{ext}/Makefile",
|
46
|
+
"lib"
|
47
|
+
]
|
48
|
+
|
49
|
+
task "lib" do
|
50
|
+
directory "lib"
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "Builds just the #{extension} extension"
|
54
|
+
task extension.to_sym => ["#{ext}/Makefile", ext_so ]
|
55
|
+
|
56
|
+
file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
|
57
|
+
extconf "#{ext}"
|
58
|
+
end
|
59
|
+
|
60
|
+
file ext_so => ext_files do
|
61
|
+
make "#{ext}"
|
62
|
+
cp ext_so, "lib"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def base_gem_spec(pkg_name, pkg_version, author, summary, executables, test_file)
|
68
|
+
pkg_version = pkg_version
|
69
|
+
pkg_name = pkg_name
|
70
|
+
pkg_file_name = "#{pkg_name}-#{pkg_version}"
|
71
|
+
Gem::Specification.new do |s|
|
72
|
+
s.name = pkg_name
|
73
|
+
s.version = pkg_version
|
74
|
+
s.required_ruby_version = '>= 1.8.3'
|
75
|
+
s.platform = Gem::Platform::RUBY
|
76
|
+
s.author = author
|
77
|
+
s.summary = summary
|
78
|
+
s.test_file = test_file
|
79
|
+
s.has_rdoc = true
|
80
|
+
s.extra_rdoc_files = [ "README" ]
|
81
|
+
|
82
|
+
s.files = %w(COPYING LICENSE README Rakefile) +
|
83
|
+
Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
|
84
|
+
Dir.glob("ext/**/*.{h,c,rb}") +
|
85
|
+
Dir.glob("examples/**/*.rb") +
|
86
|
+
Dir.glob("tools/*.rb")
|
87
|
+
|
88
|
+
s.require_path = "lib"
|
89
|
+
s.extensions = FileList["ext/**/extconf.rb"].to_a
|
90
|
+
|
91
|
+
s.executables = executables
|
92
|
+
s.bindir = "bin"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def setup_gem(pkg_name, pkg_version, author, summary, executables, test_file)
|
97
|
+
spec = base_gem_spec(pkg_name, pkg_version, author, summary, executables, test_file)
|
98
|
+
yield spec if block_given?
|
99
|
+
|
100
|
+
Rake::GemPackageTask.new(spec) do |p|
|
101
|
+
p.gem_spec = spec
|
102
|
+
p.need_tar = true
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def setup_win32_gem(pkg_name, pkg_version, author, summary, executables, test_file)
|
107
|
+
spec = base_gem_spec(pkg_name, pkg_version, author, summary, executables, test_file)
|
108
|
+
yield spec if block_given?
|
109
|
+
|
110
|
+
Gem::Builder.new(spec).build
|
111
|
+
end
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: gem_plugin
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.1"
|
7
|
+
date: 2006-03-06 00:00:00 -05:00
|
8
|
+
summary: A plugin system based only on rubygems
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email:
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire: gem_plugin
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.8.3
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
authors:
|
29
|
+
- Zed A. Shaw
|
30
|
+
files:
|
31
|
+
- COPYING
|
32
|
+
- LICENSE
|
33
|
+
- README
|
34
|
+
- Rakefile
|
35
|
+
- doc/rdoc/classes
|
36
|
+
- doc/rdoc/created.rid
|
37
|
+
- doc/rdoc/files
|
38
|
+
- doc/rdoc/fr_class_index.html
|
39
|
+
- doc/rdoc/fr_file_index.html
|
40
|
+
- doc/rdoc/fr_method_index.html
|
41
|
+
- doc/rdoc/index.html
|
42
|
+
- doc/rdoc/rdoc-style.css
|
43
|
+
- doc/rdoc/classes/GemPlugin
|
44
|
+
- doc/rdoc/classes/GemPlugin.html
|
45
|
+
- doc/rdoc/classes/GemPlugin.src
|
46
|
+
- doc/rdoc/classes/GemPlugin/Base.html
|
47
|
+
- doc/rdoc/classes/GemPlugin/Base.src
|
48
|
+
- doc/rdoc/classes/GemPlugin/Manager.html
|
49
|
+
- doc/rdoc/classes/GemPlugin/Manager.src
|
50
|
+
- doc/rdoc/classes/GemPlugin/Base.src/M000002.html
|
51
|
+
- doc/rdoc/classes/GemPlugin/Base.src/M000003.html
|
52
|
+
- doc/rdoc/classes/GemPlugin/Base.src/M000004.html
|
53
|
+
- doc/rdoc/classes/GemPlugin/Manager.src/M000005.html
|
54
|
+
- doc/rdoc/classes/GemPlugin/Manager.src/M000006.html
|
55
|
+
- doc/rdoc/classes/GemPlugin/Manager.src/M000007.html
|
56
|
+
- doc/rdoc/classes/GemPlugin/Manager.src/M000008.html
|
57
|
+
- doc/rdoc/classes/GemPlugin/Manager.src/M000009.html
|
58
|
+
- doc/rdoc/classes/GemPlugin.src/M000001.html
|
59
|
+
- doc/rdoc/files/COPYING.html
|
60
|
+
- doc/rdoc/files/lib
|
61
|
+
- doc/rdoc/files/LICENSE.html
|
62
|
+
- doc/rdoc/files/README.html
|
63
|
+
- doc/rdoc/files/lib/gem_plugin_rb.html
|
64
|
+
- test/test_plugins.rb
|
65
|
+
- lib/gem_plugin.rb
|
66
|
+
- tools/rakehelp.rb
|
67
|
+
test_files:
|
68
|
+
- test/test_plugins.rb
|
69
|
+
rdoc_options: []
|
70
|
+
|
71
|
+
extra_rdoc_files:
|
72
|
+
- README
|
73
|
+
executables: []
|
74
|
+
|
75
|
+
extensions: []
|
76
|
+
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
dependencies: []
|
80
|
+
|