rake_monkey 1.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/COPYING ADDED
@@ -0,0 +1 @@
1
+ No copying restrictions/license given.
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ No license given.
data/README ADDED
@@ -0,0 +1,50 @@
1
+ == Rake_monkey GemPlugin
2
+
3
+ This gem monkey patches the Rake::TaskManager mixin.
4
+ It allows the deletion and redefinition of existing Rake
5
+ tasks.
6
+
7
+ == Install
8
+
9
+ Include the gem as an svn:external under vendor/gems/.
10
+
11
+ or
12
+
13
+ Install as a gem and require in your application.
14
+
15
+ == Description
16
+
17
+ Rake tasks cannot be overridden, they are concatenated.
18
+
19
+ desc "first task"
20
+ task :override_me do
21
+ puts "first task"
22
+ end
23
+
24
+ desc "override override_me"
25
+ task :override_me do
26
+ puts "override first task"
27
+ end
28
+
29
+ john@emopop:~/svn/topics/ > rake override_me
30
+ (in /Users/john/svn/topics)
31
+ first task
32
+ override first task
33
+
34
+ == Usage
35
+
36
+ To redefine an existing task:
37
+
38
+ desc "Override an existing task"
39
+ redefine_task :existing_task do
40
+ ...
41
+ end
42
+
43
+ To delete an existing task:
44
+
45
+ delete_task :existing_task
46
+
47
+ == Contact
48
+
49
+ Name: John Dewey
50
+ Email: john (at) dewey.cx
@@ -0,0 +1,37 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/clean'
4
+ require 'rake/gempackagetask'
5
+ require 'rake/rdoctask'
6
+ require 'tools/rakehelp'
7
+ require 'fileutils'
8
+ include FileUtils
9
+
10
+ setup_tests
11
+ setup_clean ["pkg", "lib/*.bundle", "*.gem", ".config"]
12
+
13
+ setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
14
+
15
+ desc "Does a full compile, test run"
16
+ task :default => [:test, :package]
17
+
18
+ version="1.0"
19
+ name="rake_monkey"
20
+
21
+ setup_gem(name, version) do |spec|
22
+ spec.summary = "The rake_monkey GemPlugin"
23
+ spec.description = spec.summary
24
+ spec.author = "John Dewey <john@dewey.cx>"
25
+ spec.add_dependency('gem_plugin', '>= 0.2.2')
26
+ spec.files += Dir.glob("resources/**/*")
27
+ end
28
+
29
+
30
+ task :install => [:test, :package] do
31
+ sh %{sudo gem install pkg/#{name}-#{version}.gem}
32
+ end
33
+
34
+ task :uninstall => [:clean] do
35
+ sh %{sudo gem uninstall #{name}}
36
+ end
37
+
@@ -0,0 +1,30 @@
1
+ ##
2
+ # Monkey patching Rake.
3
+ module Rake
4
+ module TaskManager
5
+ ##
6
+ # Clear all existing actions for the given task, then set the action.
7
+ def redefine_task(task_class, args, &block)
8
+ task_name, deps = resolve_args(args)
9
+ @tasks.delete(task_name.to_s)
10
+ define_task(task_class, args, &block)
11
+ end
12
+
13
+ def delete_task(task_class, args)
14
+ task_name, deps = resolve_args(args)
15
+ @tasks.delete(task_name.to_s)
16
+ end
17
+ end
18
+ end
19
+
20
+ ##
21
+ # Method which redefines a given rake task.
22
+ def redefine_task(args, &block)
23
+ Rake.application.redefine_task(Rake::Task, args, &block)
24
+ end
25
+
26
+ ##
27
+ # Method which deletes a given rake task.
28
+ def delete_task(args)
29
+ Rake.application.delete_task(Rake::Task, args)
30
+ end
@@ -0,0 +1,2 @@
1
+ ---
2
+ :debug: false
@@ -0,0 +1,106 @@
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)
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.platform = Gem::Platform::RUBY
75
+ s.has_rdoc = true
76
+ s.extra_rdoc_files = [ "README" ]
77
+
78
+ s.files = %w(COPYING LICENSE README Rakefile) +
79
+ Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
80
+ Dir.glob("ext/**/*.{h,c,rb}") +
81
+ Dir.glob("examples/**/*.rb") +
82
+ Dir.glob("tools/*.rb")
83
+
84
+ s.require_path = "lib"
85
+ s.extensions = FileList["ext/**/extconf.rb"].to_a
86
+ s.bindir = "bin"
87
+ end
88
+ end
89
+
90
+ def setup_gem(pkg_name, pkg_version)
91
+ spec = base_gem_spec(pkg_name, pkg_version)
92
+ yield spec if block_given?
93
+
94
+ Rake::GemPackageTask.new(spec) do |p|
95
+ p.gem_spec = spec
96
+ # win32 chokes on this
97
+ p.need_tar = true if RUBY_PLATFORM !~ /mswin/
98
+ end
99
+ end
100
+
101
+ def setup_win32_gem(pkg_name, pkg_version)
102
+ spec = base_gem_spec(pkg_name, pkg_version)
103
+ yield spec if block_given?
104
+
105
+ Gem::Builder.new(spec).build
106
+ end
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: rake_monkey
5
+ version: !ruby/object:Gem::Version
6
+ version: "1.0"
7
+ date: 2007-12-15 00:00:00 -08:00
8
+ summary: The rake_monkey GemPlugin
9
+ require_paths:
10
+ - lib
11
+ email:
12
+ homepage:
13
+ rubyforge_project:
14
+ description: The rake_monkey GemPlugin
15
+ autorequire:
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: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - John Dewey <john@dewey.cx>
31
+ files:
32
+ - COPYING
33
+ - LICENSE
34
+ - README
35
+ - Rakefile
36
+ - lib/rake_monkey.rb
37
+ - tools/rakehelp.rb
38
+ - resources/defaults.yaml
39
+ test_files: []
40
+
41
+ rdoc_options: []
42
+
43
+ extra_rdoc_files:
44
+ - README
45
+ executables: []
46
+
47
+ extensions: []
48
+
49
+ requirements: []
50
+
51
+ dependencies:
52
+ - !ruby/object:Gem::Dependency
53
+ name: gem_plugin
54
+ version_requirement:
55
+ version_requirements: !ruby/object:Gem::Version::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.2.2
60
+ version: