mole 1.0.12 → 1.0.15

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.
Files changed (131) hide show
  1. metadata +24 -146
  2. data/History.txt +0 -17
  3. data/Manifest.txt +0 -132
  4. data/README.txt +0 -216
  5. data/Rakefile +0 -46
  6. data/config/database.yml +0 -21
  7. data/config/test_database.yml +0 -69
  8. data/lib/mole.rb +0 -260
  9. data/lib/mole/db/migrate.rb +0 -90
  10. data/lib/mole/e_mole.rb +0 -75
  11. data/lib/mole/logger.rb +0 -134
  12. data/lib/mole/models/mole_feature.rb +0 -58
  13. data/lib/mole/models/mole_log.rb +0 -31
  14. data/lib/mole/module.rb +0 -292
  15. data/lib/mole/moler.rb +0 -71
  16. data/lib/mole/utils/frameworks.rb +0 -53
  17. data/lib/mole/version.rb +0 -15
  18. data/samples/merbapp/README +0 -14
  19. data/samples/merbapp/Rakefile +0 -124
  20. data/samples/merbapp/app/controllers/application.rb +0 -3
  21. data/samples/merbapp/app/controllers/exceptions.rb +0 -13
  22. data/samples/merbapp/app/controllers/moled.rb +0 -25
  23. data/samples/merbapp/app/helpers/global_helper.rb +0 -5
  24. data/samples/merbapp/app/mailers/views/layout/application.html.erb +0 -1
  25. data/samples/merbapp/app/mailers/views/layout/application.text.erb +0 -1
  26. data/samples/merbapp/app/parts/views/layout/application.html.erb +0 -1
  27. data/samples/merbapp/app/views/exceptions/internal_server_error.html.erb +0 -216
  28. data/samples/merbapp/app/views/exceptions/not_acceptable.html.erb +0 -38
  29. data/samples/merbapp/app/views/exceptions/not_found.html.erb +0 -40
  30. data/samples/merbapp/app/views/layout/application.html.erb +0 -11
  31. data/samples/merbapp/app/views/moled/index.html.erb +0 -5
  32. data/samples/merbapp/app/views/moled/result.html.erb +0 -5
  33. data/samples/merbapp/config/boot.rb +0 -11
  34. data/samples/merbapp/config/dependencies.rb +0 -41
  35. data/samples/merbapp/config/environments/development.rb +0 -1
  36. data/samples/merbapp/config/environments/production.rb +0 -1
  37. data/samples/merbapp/config/environments/test.rb +0 -1
  38. data/samples/merbapp/config/merb.yml +0 -82
  39. data/samples/merbapp/config/merb_init.rb +0 -26
  40. data/samples/merbapp/config/mole_config.rb +0 -33
  41. data/samples/merbapp/config/router.rb +0 -38
  42. data/samples/merbapp/config/upload.conf +0 -0
  43. data/samples/merbapp/public/images/merb.jpg +0 -0
  44. data/samples/merbapp/public/merb.fcgi +0 -6
  45. data/samples/merbapp/public/stylesheets/master.css +0 -119
  46. data/samples/merbapp/script/destroy +0 -32
  47. data/samples/merbapp/script/generate +0 -32
  48. data/samples/merbapp/script/stop_merb +0 -13
  49. data/samples/merbapp/spec/spec_helper.rb +0 -15
  50. data/samples/merbapp/test/test_helper.rb +0 -14
  51. data/samples/railsapp/README +0 -14
  52. data/samples/railsapp/Rakefile +0 -10
  53. data/samples/railsapp/app/controllers/application.rb +0 -13
  54. data/samples/railsapp/app/controllers/moled_controller.rb +0 -23
  55. data/samples/railsapp/app/helpers/application_helper.rb +0 -3
  56. data/samples/railsapp/app/views/moled/index.html.erb +0 -5
  57. data/samples/railsapp/app/views/moled/result.html.erb +0 -5
  58. data/samples/railsapp/config/boot.rb +0 -109
  59. data/samples/railsapp/config/database.yml +0 -13
  60. data/samples/railsapp/config/environment.rb +0 -59
  61. data/samples/railsapp/config/environments/development.rb +0 -18
  62. data/samples/railsapp/config/environments/production.rb +0 -20
  63. data/samples/railsapp/config/environments/test.rb +0 -22
  64. data/samples/railsapp/config/initializers/inflections.rb +0 -10
  65. data/samples/railsapp/config/initializers/mime_types.rb +0 -5
  66. data/samples/railsapp/config/initializers/mole.rb +0 -10
  67. data/samples/railsapp/config/moles/mole_config.rb +0 -44
  68. data/samples/railsapp/config/routes.rb +0 -35
  69. data/samples/railsapp/doc/README_FOR_APP +0 -2
  70. data/samples/railsapp/public/.htaccess +0 -40
  71. data/samples/railsapp/public/404.html +0 -30
  72. data/samples/railsapp/public/422.html +0 -30
  73. data/samples/railsapp/public/500.html +0 -30
  74. data/samples/railsapp/public/dispatch.cgi +0 -10
  75. data/samples/railsapp/public/dispatch.fcgi +0 -24
  76. data/samples/railsapp/public/dispatch.rb +0 -10
  77. data/samples/railsapp/public/favicon.ico +0 -0
  78. data/samples/railsapp/public/images/rails.png +0 -0
  79. data/samples/railsapp/public/javascripts/application.js +0 -2
  80. data/samples/railsapp/public/javascripts/controls.js +0 -963
  81. data/samples/railsapp/public/javascripts/dragdrop.js +0 -972
  82. data/samples/railsapp/public/javascripts/effects.js +0 -1120
  83. data/samples/railsapp/public/javascripts/prototype.js +0 -4225
  84. data/samples/railsapp/public/robots.txt +0 -5
  85. data/samples/railsapp/script/about +0 -3
  86. data/samples/railsapp/script/console +0 -3
  87. data/samples/railsapp/script/destroy +0 -3
  88. data/samples/railsapp/script/generate +0 -3
  89. data/samples/railsapp/script/performance/benchmarker +0 -3
  90. data/samples/railsapp/script/performance/profiler +0 -3
  91. data/samples/railsapp/script/performance/request +0 -3
  92. data/samples/railsapp/script/plugin +0 -3
  93. data/samples/railsapp/script/process/inspector +0 -3
  94. data/samples/railsapp/script/process/reaper +0 -3
  95. data/samples/railsapp/script/process/spawner +0 -3
  96. data/samples/railsapp/script/runner +0 -3
  97. data/samples/railsapp/script/server +0 -3
  98. data/samples/railsapp/test/test_helper.rb +0 -38
  99. data/samples/rubyapp/README +0 -22
  100. data/samples/rubyapp/bin/ruby_app +0 -35
  101. data/samples/rubyapp/config/mole_conf.rb +0 -31
  102. data/samples/rubyapp/lib/fred.rb +0 -22
  103. data/spec/config/auto_mole_config.rb +0 -26
  104. data/spec/config/mole_config.rb +0 -0
  105. data/spec/config/moles/fred_config.rb +0 -0
  106. data/spec/data/blee.rb +0 -64
  107. data/spec/db/migrate_spec.rb +0 -19
  108. data/spec/emole_spec.rb +0 -43
  109. data/spec/logger_spec.rb +0 -56
  110. data/spec/models/mole_feature_spec.rb +0 -48
  111. data/spec/models/mole_log_spec.rb +0 -62
  112. data/spec/module_spec.rb +0 -229
  113. data/spec/mole_spec.rb +0 -135
  114. data/spec/moler_spec.rb +0 -77
  115. data/spec/spec_helper.rb +0 -76
  116. data/spec/utils/framework_spec.rb +0 -99
  117. data/tasks/ann.rake +0 -76
  118. data/tasks/annotations.rake +0 -22
  119. data/tasks/doc.rake +0 -48
  120. data/tasks/gem.rake +0 -110
  121. data/tasks/manifest.rake +0 -49
  122. data/tasks/mole.rake +0 -115
  123. data/tasks/post_load.rake +0 -26
  124. data/tasks/rubyforge.rake +0 -57
  125. data/tasks/setup.rb +0 -227
  126. data/tasks/spec.rake +0 -54
  127. data/tasks/svn.rake +0 -44
  128. data/tasks/test.rake +0 -38
  129. data/templates/mole/e_mole/exception_alerts.rhtml +0 -14
  130. data/templates/mole/e_mole/feature_alerts.rhtml +0 -11
  131. data/templates/mole/e_mole/perf_alerts.rhtml +0 -12
@@ -1,77 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper" )
2
-
3
- require 'action_mailer'
4
- ActionMailer::Base.delivery_method = :sendmail
5
- ActionMailer::Base.raise_delivery_errors = true
6
-
7
- describe Mole::Moler do
8
- TEST_LOG = "/tmp/test.log"
9
- before( :each ) do
10
- ::Mole.reset_configuration!
11
- @io = StringIO.new
12
- ::Mole.initialize( :mode => :transient,
13
- :logger_name => "Test",
14
- :log_file => @io,
15
- :moleable => true,
16
- :emole_from => "MOleBeatch@liquidrail.com",
17
- :emole_recipients => ['fernand@liquidrail.com'] )
18
- @args = { :blee => "Hello", :duh => "World" }
19
- end
20
-
21
- it "should log unchecked to the db exceptions correctly" do
22
- ::Mole.switch_mode :persistent
23
- begin
24
- raise "Something bad happened !"
25
- rescue => boom
26
- @args[:boom] = boom
27
- ::Mole::Moler.check_it( self, 100, @args )
28
- end
29
- feature = MoleFeature.find_exception_feature( ::Mole.application )
30
- feature.should_not be_nil
31
- check_it( feature, 100, @args )
32
- end
33
-
34
- it "should log perf exception to the db correctly" do
35
- ::Mole.switch_mode :persistent
36
- ::Mole::Moler.perf_it( self, 100, @args )
37
- feature = MoleFeature.find_performance_feature( ::Mole.application )
38
- feature.should_not be_nil
39
- check_it( feature, 100, @args )
40
- end
41
-
42
- it "should mole a feature to the db correctly" do
43
- ::Mole.switch_mode :persistent
44
- ::Mole::Moler.mole_it( "Test", "fred", 100, @args )
45
- feature = MoleFeature.find_or_create_feature( "fred", ::Mole.application, "Test".class.name )
46
- feature.should_not be_nil
47
- check_it( feature, 100, @args )
48
- end
49
-
50
- it "should log a feature to the db and send an email correctly" do
51
- ::Mole.switch_mode :persistent
52
- @args[:email] = true
53
- ::Mole::Moler.mole_it( "Test", "fred", 100, @args )
54
- feature = MoleFeature.find_or_create_feature( "fred", ::Mole.application, "Test".class.name )
55
- feature.should_not be_nil
56
- check_it( feature, 100, { :email => true, :blee => "Hello", :duh => "World" } )
57
- end
58
-
59
- it "should log unchecked exceptions to the logger correctly" do
60
- ::Mole.switch_mode :transient
61
- ::Mole::Moler.check_it( self, 100, @args )
62
- @io.string[@io.string.index( "---" )..@io.string.size].should == "--- 100 -> blee=>Hello, duh=>World\n"
63
- end
64
-
65
- it "should log perf exception to the logger correctly" do
66
- ::Mole.switch_mode :transient
67
- ::Mole::Moler.perf_it( self, 100, @args )
68
- @io.string[@io.string.index( "---" )..@io.string.size].should == "--- 100 -> blee=>Hello, duh=>World\n"
69
- end
70
-
71
- it "should mole a feature to the logger correctly" do
72
- ::Mole.switch_mode :transient
73
- ::Mole::Moler.mole_it( "Test", "Fred", 100, @args )
74
- @io.string[@io.string.index( "---" )..@io.string.size].should == "--- 100 -> blee=>Hello, duh=>World\n"
75
- end
76
-
77
- end
@@ -1,76 +0,0 @@
1
- require 'rubygems'
2
- require 'active_record'
3
-
4
- require File.join( File.dirname(__FILE__), %w[.. lib mole] )
5
-
6
- # Init the mole with defaults
7
- ::Mole.initialize
8
-
9
- # Connect to the database
10
- unless ActiveRecord::Base.connected?
11
- db_config = YAML.load_file( File.join( File.dirname(__FILE__), %w[.. config database.yml] ) )["test"]
12
- # ::ActiveRecord::Base.logger = ::Mole.logger
13
- # ::ActiveRecord::Base.logger.level = :debug
14
- ::ActiveRecord::Base.establish_connection(db_config)
15
- end
16
-
17
- class CallStackChecker
18
- class << self
19
- def called
20
- @called = 1
21
- end
22
-
23
- def reset!
24
- @called = 0
25
- end
26
-
27
- def called?
28
- @called == 1
29
- end
30
- end
31
- end
32
-
33
- gem 'rspec'
34
- require 'spec'
35
-
36
- Spec::Runner.configure do |config|
37
- config.before(:each) do
38
- # from fixtures.rb in rails
39
- begin
40
- ActiveRecord::Base.send :increment_open_transactions
41
- ActiveRecord::Base.connection.begin_db_transaction
42
- rescue
43
- end
44
- end
45
-
46
- config.after(:each) do
47
- begin
48
- # from fixtures.rb in rails
49
- if Thread.current['open_transactions'] && Thread.current['open_transactions'] > 0
50
- Thread.current['open_transactions'].downto(1) do
51
- ActiveRecord::Base.connection.rollback_db_transaction if ActiveRecord::Base.connection
52
- end
53
- Thread.current['open_transactions'] = 0
54
- end
55
- ActiveRecord::Base.verify_active_connections!
56
- rescue
57
- end
58
- end
59
- end
60
-
61
- # Convenience to check mole_logs
62
- def check_it( feature, user_id, args={} )
63
- log = MoleLog.find( :first, :conditions => ['mole_feature_id = ?', feature.id] )
64
- log.should_not be_nil
65
- log.user_id.should == user_id
66
- log_args = YAML.load( log.params )
67
- check_args( log_args, args )
68
- log
69
- end
70
- def check_args( args, expected_args )
71
- args.should have(expected_args.size).items
72
- expected_args.keys.each do |k|
73
- args[k].should_not be_nil
74
- args[k].should == expected_args[k]
75
- end
76
- end
@@ -1,99 +0,0 @@
1
- require File.join(File.dirname(__FILE__), %w[.. spec_helper] )
2
-
3
- describe Mole::Utils::Frameworks do
4
- before( :all ) do
5
- ::Mole.reset_configuration!
6
- ::Mole.initialize( :moleable => true )
7
- end
8
-
9
- describe ".flatten_params" do
10
- it "should flatten request parameters correctly" do
11
- Mole::Utils::Frameworks.flatten_params( RailsController.new ).should == "action => fred, controller => rails, id => 10"
12
- end
13
- it "should detect if this is not a controller class" do
14
- Mole::Utils::Frameworks.flatten_params( Poro.new ).should be_nil
15
- end
16
- end
17
-
18
- describe ".features_for" do
19
- it "should find the correct features for a merb controller" do
20
- features = Mole::Utils::Frameworks.features_for( MerbController )
21
- features.sort.should == %w[blee fred]
22
- end
23
- it "should find the correct features for a rails controller" do
24
- features = Mole::Utils::Frameworks.features_for( RailsController )
25
- features.sort.should == %w[blee fred]
26
- end
27
- it "should find the correct features for a plain old ruby object" do
28
- features = Mole::Utils::Frameworks.features_for( Poro )
29
- features.sort.should == %w[blee duh]
30
- end
31
- end
32
-
33
- describe ".merb_actions" do
34
- it "should retrieve Merb controller actions correctly" do
35
- actions = Mole::Utils::Frameworks.merb_actions( MerbController )
36
- actions.sort.should == %w[blee fred]
37
- end
38
- it "should raise an exception if it is not a merb controller" do
39
- lambda { Mole::Utils::Frameworks.merb_actions( String ) }.should raise_error( "Invalid Merb Controller class `String" )
40
- end
41
- end
42
-
43
- describe ".rails_actions" do
44
- it "should retrieve Rails controller actions correctly" do
45
- actions = Mole::Utils::Frameworks.rails_actions( RailsController )
46
- actions.sort.should == %w[blee fred]
47
- end
48
-
49
- it "should raise an exception if it is not a rails controller" do
50
- lambda { Mole::Utils::Frameworks.rails_actions( String ) }.should raise_error( "Invalid Rails Controller class `String" )
51
- end
52
- end
53
-
54
- class Poro
55
- def blee
56
- end
57
-
58
- def duh
59
- end
60
- end
61
-
62
- class MerbController
63
- def self.callable_actions
64
- { 'fred' => nil, 'blee' => nil }
65
- end
66
-
67
- def fred
68
- end
69
-
70
- def blee
71
- end
72
-
73
- private
74
-
75
- def duh
76
- end
77
- end
78
-
79
- class RailsController
80
- def params
81
- { :id => 10, :action => "fred", :controller => "rails" }
82
- end
83
-
84
- def self.action_methods
85
- %w[fred blee]
86
- end
87
-
88
- def fred
89
- end
90
-
91
- def blee
92
- end
93
-
94
- private
95
-
96
- def duh
97
- end
98
- end
99
- end
@@ -1,76 +0,0 @@
1
- # $Id$
2
-
3
- begin
4
- require 'bones/smtp_tls'
5
- rescue LoadError
6
- require 'net/smtp'
7
- end
8
- require 'time'
9
-
10
- namespace :ann do
11
-
12
- file PROJ.ann_file do
13
- puts "Generating #{PROJ.ann_file}"
14
- File.open(PROJ.ann_file,'w') do |fd|
15
- fd.puts("#{PROJ.name} version #{PROJ.version}")
16
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
17
- fd.puts(" #{PROJ.url}") if PROJ.url
18
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
19
- fd.puts
20
- fd.puts("== DESCRIPTION")
21
- fd.puts
22
- fd.puts(PROJ.description)
23
- fd.puts
24
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
25
- fd.puts
26
- PROJ.ann_paragraphs.each do |p|
27
- fd.puts "== #{p.upcase}"
28
- fd.puts
29
- fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
30
- fd.puts
31
- end
32
- fd.puts PROJ.ann_text if PROJ.ann_text
33
- end
34
- end
35
-
36
- desc "Create an announcement file"
37
- task :announcement => PROJ.ann_file
38
-
39
- desc "Send an email announcement"
40
- task :email => PROJ.ann_file do
41
- from = PROJ.ann_email[:from] || PROJ.email
42
- to = Array(PROJ.ann_email[:to])
43
-
44
- ### build a mail header for RFC 822
45
- rfc822msg = "From: #{from}\n"
46
- rfc822msg << "To: #{to.join(',')}\n"
47
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
48
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
49
- rfc822msg << "\n"
50
- rfc822msg << "Date: #{Time.new.rfc822}\n"
51
- rfc822msg << "Message-Id: "
52
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{PROJ.ann_email[:domain]}>\n\n"
53
- rfc822msg << File.read(PROJ.ann_file)
54
-
55
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
56
- PROJ.ann_email[key]
57
- end
58
-
59
- params[3] = PROJ.email if params[3].nil?
60
-
61
- if params[4].nil?
62
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
63
- params[4] = STDIN.gets.chomp
64
- end
65
-
66
- ### send email
67
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
68
- end
69
- end # namespace :ann
70
-
71
- desc 'Alias to ann:announcement'
72
- task :ann => 'ann:announcement'
73
-
74
- CLOBBER << PROJ.ann_file
75
-
76
- # EOF
@@ -1,22 +0,0 @@
1
- # $Id$
2
-
3
- if HAVE_BONES
4
-
5
- desc "Enumerate all annotations"
6
- task :notes do
7
- Bones::AnnotationExtractor.enumerate(
8
- PROJ, PROJ.annotation_tags.join('|'), :tag => true)
9
- end
10
-
11
- namespace :notes do
12
- PROJ.annotation_tags.each do |tag|
13
- desc "Enumerate all #{tag} annotations"
14
- task tag.downcase.to_sym do
15
- Bones::AnnotationExtractor.enumerate(PROJ, tag)
16
- end
17
- end
18
- end
19
-
20
- end # if HAVE_BONES
21
-
22
- # EOF
@@ -1,48 +0,0 @@
1
- # $Id$
2
-
3
- require 'rake/rdoctask'
4
-
5
- namespace :doc do
6
-
7
- desc 'Generate RDoc documentation'
8
- Rake::RDocTask.new do |rd|
9
- rd.main = PROJ.rdoc_main
10
- rd.rdoc_dir = PROJ.rdoc_dir
11
-
12
- incl = Regexp.new(PROJ.rdoc_include.join('|'))
13
- excl = Regexp.new(PROJ.rdoc_exclude.join('|'))
14
- files = PROJ.files.find_all do |fn|
15
- case fn
16
- when excl; false
17
- when incl; true
18
- else false end
19
- end
20
- rd.rdoc_files.push(*files)
21
-
22
- title = "#{PROJ.name}-#{PROJ.version} Documentation"
23
- title = "#{PROJ.rubyforge_name}'s " + title if PROJ.rubyforge_name != title
24
-
25
- rd.options << "-t #{title}"
26
- rd.options.concat(PROJ.rdoc_opts)
27
- end
28
-
29
- desc 'Generate ri locally for testing'
30
- task :ri => :clobber_ri do
31
- sh "#{RDOC} --ri -o ri ."
32
- end
33
-
34
- task :clobber_ri do
35
- rm_r 'ri' rescue nil
36
- end
37
-
38
- end # namespace :doc
39
-
40
- desc 'Alias to doc:rdoc'
41
- task :doc => 'doc:rdoc'
42
-
43
- desc 'Remove all build products'
44
- task :clobber => %w(doc:clobber_rdoc doc:clobber_ri)
45
-
46
- remove_desc_for_task %w(doc:clobber_rdoc)
47
-
48
- # EOF
@@ -1,110 +0,0 @@
1
- # $Id$
2
-
3
- require 'rake/gempackagetask'
4
-
5
- namespace :gem do
6
-
7
- PROJ.spec = Gem::Specification.new do |s|
8
- s.name = PROJ.name
9
- s.version = PROJ.version
10
- s.summary = PROJ.summary
11
- s.authors = Array(PROJ.authors)
12
- s.email = PROJ.email
13
- s.homepage = Array(PROJ.url).first
14
- s.rubyforge_project = PROJ.rubyforge_name
15
- s.post_install_message = PROJ.post_install_message
16
-
17
- s.description = PROJ.description
18
-
19
- PROJ.dependencies.each do |dep|
20
- s.add_dependency(*dep)
21
- end
22
-
23
- s.files = PROJ.files
24
- s.executables = PROJ.executables.map {|fn| File.basename(fn)}
25
- s.extensions = PROJ.files.grep %r/extconf\.rb$/
26
-
27
- s.bindir = 'bin'
28
- dirs = Dir["{#{PROJ.libs.join(',')}}"]
29
- s.require_paths = dirs unless dirs.empty?
30
-
31
- incl = Regexp.new(PROJ.rdoc_include.join('|'))
32
- excl = PROJ.rdoc_exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
33
- excl = Regexp.new(excl.join('|'))
34
- rdoc_files = PROJ.files.find_all do |fn|
35
- case fn
36
- when excl; false
37
- when incl; true
38
- else false end
39
- end
40
- s.rdoc_options = PROJ.rdoc_opts + ['--main', PROJ.rdoc_main]
41
- s.extra_rdoc_files = rdoc_files
42
- s.has_rdoc = true
43
-
44
- if test ?f, PROJ.test_file
45
- s.test_file = PROJ.test_file
46
- else
47
- s.test_files = PROJ.tests.to_a
48
- end
49
-
50
- # Do any extra stuff the user wants
51
- # spec_extras.each do |msg, val|
52
- # case val
53
- # when Proc
54
- # val.call(s.send(msg))
55
- # else
56
- # s.send "#{msg}=", val
57
- # end
58
- # end
59
- end
60
-
61
- desc 'Show information about the gem'
62
- task :debug do
63
- puts PROJ.spec.to_ruby
64
- end
65
-
66
- pkg = Rake::PackageTask.new(PROJ.name, PROJ.version) do |pkg|
67
- pkg.need_tar = PROJ.need_tar
68
- pkg.need_zip = PROJ.need_zip
69
- pkg.package_files += PROJ.spec.files
70
- end
71
- Rake::Task['gem:package'].instance_variable_set(:@full_comment, nil)
72
-
73
- gem_file = if PROJ.spec.platform == Gem::Platform::RUBY
74
- "#{pkg.package_name}.gem"
75
- else
76
- "#{pkg.package_name}-#{PROJ.spec.platform}.gem"
77
- end
78
-
79
- desc "Build the gem file #{gem_file}"
80
- task :package => "#{pkg.package_dir}/#{gem_file}"
81
-
82
- file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.spec.files do
83
- when_writing("Creating GEM") {
84
- Gem::Builder.new(PROJ.spec).build
85
- verbose(true) {
86
- mv gem_file, "#{pkg.package_dir}/#{gem_file}"
87
- }
88
- }
89
- end
90
-
91
- desc 'Install the gem'
92
- task :install => [:clobber, :package] do
93
- sh "#{SUDO} #{GEM} install pkg/#{PROJ.spec.full_name}"
94
- end
95
-
96
- desc 'Uninstall the gem'
97
- task :uninstall do
98
- sh "#{SUDO} #{GEM} uninstall -v '#{PROJ.version}' -x #{PROJ.name}"
99
- end
100
-
101
- end # namespace :gem
102
-
103
- desc 'Alias to gem:package'
104
- task :gem => 'gem:package'
105
-
106
- task :clobber => 'gem:clobber_package'
107
-
108
- remove_desc_for_task %w(gem:clobber_package)
109
-
110
- # EOF