From edc32c4d820774346c8908a3572565c54cf93269 Mon Sep 17 00:00:00 2001 From: zedshaw Date: Fri, 12 May 2006 01:26:28 +0000 Subject: [PATCH] Beginnings of an upload progress plugin handler. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@169 19e92222-5c0b-0410-8929-a290d50e31e9 --- projects/mongrel_upload_progress/COPYING | 1 + projects/mongrel_upload_progress/LICENSE | 1 + projects/mongrel_upload_progress/README | 5 + projects/mongrel_upload_progress/Rakefile | 37 ++++++ .../lib/mongrel_upload_progress/init.rb | 6 + .../resources/defaults.yaml | 2 + .../mongrel_upload_progress/tools/rakehelp.rb | 105 ++++++++++++++++++ 7 files changed, 157 insertions(+) create mode 100644 projects/mongrel_upload_progress/COPYING create mode 100644 projects/mongrel_upload_progress/LICENSE create mode 100644 projects/mongrel_upload_progress/README create mode 100644 projects/mongrel_upload_progress/Rakefile create mode 100644 projects/mongrel_upload_progress/lib/mongrel_upload_progress/init.rb create mode 100644 projects/mongrel_upload_progress/resources/defaults.yaml create mode 100644 projects/mongrel_upload_progress/tools/rakehelp.rb diff --git a/projects/mongrel_upload_progress/COPYING b/projects/mongrel_upload_progress/COPYING new file mode 100644 index 00000000..bff74f4d --- /dev/null +++ b/projects/mongrel_upload_progress/COPYING @@ -0,0 +1 @@ +No copying restrictions/license given. \ No newline at end of file diff --git a/projects/mongrel_upload_progress/LICENSE b/projects/mongrel_upload_progress/LICENSE new file mode 100644 index 00000000..5ac4caba --- /dev/null +++ b/projects/mongrel_upload_progress/LICENSE @@ -0,0 +1 @@ +No license given. \ No newline at end of file diff --git a/projects/mongrel_upload_progress/README b/projects/mongrel_upload_progress/README new file mode 100644 index 00000000..7014ec31 --- /dev/null +++ b/projects/mongrel_upload_progress/README @@ -0,0 +1,5 @@ +== Mongrel_upload_progress GemPlugin + +You should document your project here. + + diff --git a/projects/mongrel_upload_progress/Rakefile b/projects/mongrel_upload_progress/Rakefile new file mode 100644 index 00000000..79222069 --- /dev/null +++ b/projects/mongrel_upload_progress/Rakefile @@ -0,0 +1,37 @@ +require 'rake' +require 'rake/testtask' +require 'rake/clean' +require 'rake/gempackagetask' +require 'rake/rdoctask' +require 'tools/rakehelp' +require 'fileutils' +include FileUtils + +setup_tests +setup_clean ["pkg", "lib/*.bundle", "*.gem", ".config"] + +setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc'] + +desc "Does a full compile, test run" +task :default => [:test, :package] + +version="0.1" +name="mongrel_upload_progress" + +setup_gem(name, version) do |spec| + spec.summary = "The mongrel_upload_progress GemPlugin" + spec.description = spec.summary + spec.author="Nobody" + spec.add_dependency('gem_plugin', '>= 0.2.1') + spec.files += Dir.glob("resources/**/*") +end + + +task :install => [:test, :package] do + sh %{sudo gem install pkg/#{name}-#{version}.gem} +end + +task :uninstall => [:clean] do + sh %{sudo gem uninstall #{name}} +end + diff --git a/projects/mongrel_upload_progress/lib/mongrel_upload_progress/init.rb b/projects/mongrel_upload_progress/lib/mongrel_upload_progress/init.rb new file mode 100644 index 00000000..8eaad23f --- /dev/null +++ b/projects/mongrel_upload_progress/lib/mongrel_upload_progress/init.rb @@ -0,0 +1,6 @@ +require 'gem_plugin' + +# give this class the name you want for your command mongrel_upload_progress +class ChangeME < GemPlugin::Plugin "/somecategory" +end + diff --git a/projects/mongrel_upload_progress/resources/defaults.yaml b/projects/mongrel_upload_progress/resources/defaults.yaml new file mode 100644 index 00000000..10d2a473 --- /dev/null +++ b/projects/mongrel_upload_progress/resources/defaults.yaml @@ -0,0 +1,2 @@ +--- +:debug: false diff --git a/projects/mongrel_upload_progress/tools/rakehelp.rb b/projects/mongrel_upload_progress/tools/rakehelp.rb new file mode 100644 index 00000000..d8505a25 --- /dev/null +++ b/projects/mongrel_upload_progress/tools/rakehelp.rb @@ -0,0 +1,105 @@ + +def make(makedir) + Dir.chdir(makedir) do + sh(PLATFORM =~ /win32/ ? 'nmake' : 'make') + end +end + + +def extconf(dir) + Dir.chdir(dir) do ruby "extconf.rb" end +end + + +def setup_tests + Rake::TestTask.new do |t| + t.libs << "test" + t.test_files = FileList['test/test*.rb'] + t.verbose = true + end +end + + +def setup_clean otherfiles + files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles + CLEAN.include(files) +end + + +def setup_rdoc files + Rake::RDocTask.new do |rdoc| + rdoc.rdoc_dir = 'doc/rdoc' + rdoc.options << '--line-numbers' + rdoc.rdoc_files.add(files) + end +end + + +def setup_extension(dir, extension) + ext = "ext/#{dir}" + ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}" + ext_files = FileList[ + "#{ext}/*.c", + "#{ext}/*.h", + "#{ext}/extconf.rb", + "#{ext}/Makefile", + "lib" + ] + + task "lib" do + directory "lib" + end + + desc "Builds just the #{extension} extension" + task extension.to_sym => ["#{ext}/Makefile", ext_so ] + + file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do + extconf "#{ext}" + end + + file ext_so => ext_files do + make "#{ext}" + cp ext_so, "lib" + end +end + + +def base_gem_spec(pkg_name, pkg_version) + pkg_version = pkg_version + pkg_name = pkg_name + pkg_file_name = "#{pkg_name}-#{pkg_version}" + Gem::Specification.new do |s| + s.name = pkg_name + s.version = pkg_version + s.platform = Gem::Platform::RUBY + s.has_rdoc = true + s.extra_rdoc_files = [ "README" ] + + s.files = %w(COPYING LICENSE README Rakefile) + + Dir.glob("{bin,doc/rdoc,test,lib}/**/*") + + Dir.glob("ext/**/*.{h,c,rb}") + + Dir.glob("examples/**/*.rb") + + Dir.glob("tools/*.rb") + + s.require_path = "lib" + s.extensions = FileList["ext/**/extconf.rb"].to_a + s.bindir = "bin" + end +end + +def setup_gem(pkg_name, pkg_version) + spec = base_gem_spec(pkg_name, pkg_version) + yield spec if block_given? + + Rake::GemPackageTask.new(spec) do |p| + p.gem_spec = spec + p.need_tar = true + end +end + +def setup_win32_gem(pkg_name, pkg_version) + spec = base_gem_spec(pkg_name, pkg_version) + yield spec if block_given? + + Gem::Builder.new(spec).build +end