rake-compiler 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,79 @@
1
+ begin
2
+ gem 'rubyforge', '~> 1.0.1'
3
+ require 'rubyforge'
4
+ rescue Exception
5
+ nil
6
+ end
7
+
8
+ if defined?(RubyForge) then
9
+ if defined?(GEM_SPEC) then
10
+ task :release => [:clobber, :package] do |t|
11
+ ver = ENV['VERSION'] or fail "Must supply VERSION (rake release VERSION=x.y.z)."
12
+
13
+ # compare versions to avoid mistakes
14
+ unless ver == GEM_SPEC.version.to_s then
15
+ fail "Version mismatch (supplied and specification versions differ)."
16
+ end
17
+
18
+ # no rubyforge project? no release for you!
19
+ if GEM_SPEC.rubyforge_project == 'TODO' or GEM_SPEC.rubyforge_project.nil? then
20
+ fail "Must define rubyforge_project in your gem specification."
21
+ end
22
+
23
+ # instantiate a RubyForge object
24
+ rf = RubyForge.new
25
+
26
+ # read project info and overview
27
+ notes = begin
28
+ r = File.read("README.rdoc")
29
+ r.split(/^(=+ .*)/)[1..4].join.strip
30
+ rescue
31
+ warn "Missing README.rdoc"
32
+ ''
33
+ end
34
+
35
+ # read changes
36
+ changes = begin
37
+ h = File.read("History.txt")
38
+ h.split(/^(==.*)/)[1..2].join.strip
39
+ rescue
40
+ warn "Missing History.txt"
41
+ ''
42
+ end
43
+
44
+ # build the configuration for the release
45
+ config = Hash.new
46
+ config["release_notes"] = notes
47
+ config["release_changes"] = changes
48
+ config["preformatted"] = true
49
+
50
+ # prepare configuration
51
+ rf.configure config
52
+
53
+ # ensure this was not released before
54
+ releases = rf.autoconfig['release_ids']
55
+ if releases.has_key?(GEM_SPEC.name) and releases[GEM_SPEC.name][GEM_SPEC.version] then
56
+ fail "Release #{GEM_SPEC.version} already exist. Unable to release."
57
+ end
58
+
59
+ files = FileList["pkg/#{GEM_SPEC.name}-#{GEM_SPEC.version}*.*"].to_a
60
+ fail "No files found for the release." if files.empty?
61
+
62
+ puts "Logging in RubyForge..."
63
+ rf.login
64
+
65
+ puts "Files to upload:"
66
+ files.each do |f|
67
+ puts " * #{f}"
68
+ end
69
+
70
+ puts "Releasing #{GEM_SPEC.name} version #{GEM_SPEC.version}..."
71
+ rf.add_release GEM_SPEC.rubyforge_project, GEM_SPEC.name, GEM_SPEC.version, *files
72
+ puts "Done."
73
+ end
74
+ else
75
+ warn "no GEM_SPEC is found or defined. 'release' task cannot work without it."
76
+ end
77
+ else
78
+ warn "rubyforge gem is required to generate releases, please install it (gem install rubyforge)."
79
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,33 @@
1
+ begin
2
+ gem 'rspec', '~> 1.1.9'
3
+ gem 'rcov', '~> 0.8.1'
4
+ require 'spec/rake/spectask'
5
+ require 'rcov'
6
+ rescue Exception
7
+ nil
8
+ end
9
+
10
+ if defined?(Spec)
11
+ Spec::Rake::SpecTask.new(:spec) do |t|
12
+ t.spec_opts = ["--options", "spec/spec.opts"]
13
+ t.spec_files = FileList["spec/**/*_spec.rb"]
14
+ end
15
+
16
+ if defined?(Rcov)
17
+ CLOBBER.include('coverage')
18
+
19
+ namespace :spec do
20
+ desc "Run all specs in spec directory with RCov"
21
+ Spec::Rake::SpecTask.new(:rcov) do |t|
22
+ t.spec_opts = ["--options", "spec/spec.opts"]
23
+ t.spec_files = FileList["spec/**/*_spec.rb"]
24
+ t.rcov = true
25
+ t.rcov_opts = ["--exclude", "spec/*,features/*,gems/*"]
26
+ end
27
+ end
28
+ else
29
+ warn "RCov gem is required, please install it (gem install rcov)."
30
+ end
31
+ else
32
+ warn "RSpec gem is required, please install it (gem install rspec)."
33
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rake-compiler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Luis Lavena
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-07 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.8.3
24
+ - - <
25
+ - !ruby/object:Gem::Version
26
+ version: "0.9"
27
+ version:
28
+ description: Provide a standard and simplified way to build and package Ruby C extensions using Rake as glue.
29
+ email: luislavena@gmail.com
30
+ executables:
31
+ - rake-compiler
32
+ extensions: []
33
+
34
+ extra_rdoc_files:
35
+ - README.rdoc
36
+ - LICENSE.txt
37
+ - History.txt
38
+ files:
39
+ - features/compile.feature
40
+ - features/cross-compile.feature
41
+ - features/cross-package.feature
42
+ - features/package.feature
43
+ - features/step_definitions/compilation.rb
44
+ - features/step_definitions/cross_compilation.rb
45
+ - features/step_definitions/execution.rb
46
+ - features/step_definitions/folders.rb
47
+ - features/step_definitions/gem.rb
48
+ - features/support/env.rb
49
+ - features/support/file_templates.rb
50
+ - features/support/generators.rb
51
+ - bin/rake-compiler
52
+ - lib/rake/extensiontask.rb
53
+ - spec/lib/rake/extensiontask_spec.rb
54
+ - spec/spec_helper.rb
55
+ - tasks/bin/cross-ruby.rake
56
+ - tasks/common.rake
57
+ - tasks/cucumber.rake
58
+ - tasks/gem.rake
59
+ - tasks/rdoc.rake
60
+ - tasks/release.rake
61
+ - tasks/rspec.rake
62
+ - Rakefile
63
+ - README.rdoc
64
+ - History.txt
65
+ - LICENSE.txt
66
+ - cucumber.yml
67
+ has_rdoc: true
68
+ homepage: http://github.com/luislavena/rake-compiler
69
+ post_install_message:
70
+ rdoc_options:
71
+ - --main
72
+ - README.rdoc
73
+ - --title
74
+ - rake-compiler -- Documentation
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
82
+ version:
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "0"
88
+ version:
89
+ requirements: []
90
+
91
+ rubyforge_project: rake-compiler
92
+ rubygems_version: 1.3.0
93
+ signing_key:
94
+ specification_version: 2
95
+ summary: Rake-based Ruby C Extension task generator.
96
+ test_files: []
97
+