rake_tasks 0.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/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ group :rake do
4
+ gem 'rake', '~> 0.8.7'
5
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,10 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ rake (0.8.7)
5
+
6
+ PLATFORMS
7
+ ruby
8
+
9
+ DEPENDENCIES
10
+ rake (~> 0.8.7)
data/README ADDED
@@ -0,0 +1,45 @@
1
+ == Welcome to RakeTasks
2
+
3
+ RakeTasks provides basic rake tasks, such as rdoc generation,
4
+ building and installing gems, and running tests. It will also load additional
5
+ rake tasks if they are found.
6
+
7
+ The following assumptions are currently made:
8
+
9
+ 1. There is a valid .gemspec file in the root folder that is named the same
10
+ as the root folder.
11
+
12
+ 2. Tests reside in a folder named 'test' and test files are named *_test.rb.
13
+
14
+ 3. Additional rake tasks are named *.rb and reside in a folder named 'tasks'.
15
+
16
+ The default task will be set in the following order:
17
+
18
+ 1. If tests are found, rake will run test:all.
19
+
20
+ 2. If tests are not found, but an appropriately named .gemspec file is,
21
+ gem:build will be run.
22
+
23
+ 3. If no tests or .gemspec are found, rdoc:app will be run.
24
+
25
+ == Getting Started
26
+
27
+ 1. Install RakeTasks at the command prompt if you haven't yet:
28
+
29
+ gem install rake_tasks
30
+
31
+ 2. Require the gem in your gemfile:
32
+
33
+ gem 'rake_tasks', '~> 0.0.1'
34
+
35
+ 3. Require the gem wherever you need state management:
36
+
37
+ require 'rake_tasks'
38
+
39
+ == Additional Documentation
40
+
41
+ rake rdoc:app
42
+
43
+ == License
44
+
45
+ RakeTasks is released under the GPLv3 license.
@@ -0,0 +1,70 @@
1
+ gem_spec_file = "#{File.basename(Dir.getwd)}.gemspec"
2
+
3
+ if File.file?(gem_spec_file)
4
+ ############################################################################
5
+ namespace :gem do
6
+ ############################################################################
7
+
8
+ gem_spec = Gem::Specification.load(gem_spec_file)
9
+
10
+ file gem_spec.file_name => [gem_spec_file, *Dir['lib/**/*.rb']] do |t|
11
+ puts `gem build #{gem_spec_file}`
12
+ end
13
+
14
+ desc "Build #{gem_spec.name} gem version #{gem_spec.version}."
15
+ task :build => gem_spec.file_name
16
+
17
+ desc "Install the #{gem_spec.name} gem."
18
+ task :install => [gem_spec.file_name] do |t|
19
+ puts `gem install #{gem_spec.file_name} --no-rdoc --no-ri`
20
+ end
21
+
22
+ desc "Removes files associated with building and installing #{gem_spec.name}."
23
+ task :clobber do |t|
24
+ rm_f gem_spec.file_name
25
+ end
26
+
27
+ desc "Removes the gem file, builds, and installs."
28
+ task :generate => ['gem:clobber', gem_spec.file_name, 'gem:install']
29
+
30
+ desc "Show/Set the version number."
31
+ task :version, [:number] do |t, args|
32
+ if args[:number].nil?
33
+ puts "#{gem_spec.name} version #{gem_spec.version}"
34
+ else
35
+ temp_file = Tempfile.new("#{gem_spec.name}_gemspec")
36
+
37
+ begin
38
+ File.open(gem_spec_file, 'r') do |file|
39
+ while line = file.gets
40
+ if line =~ /version *= *['"]#{gem_spec.version}['"]/
41
+ temp_file.puts line.sub(
42
+ /['"]#{gem_spec.version}['"]/, "'#{args[:number]}'")
43
+ else
44
+ temp_file.puts line
45
+ end
46
+ end
47
+ end
48
+
49
+ temp_file.flush
50
+
51
+ mv temp_file.path, gem_spec_file
52
+
53
+ rescue Exception => ex
54
+ raise ex
55
+ ensure
56
+ temp_file.close
57
+ temp_file.unlink
58
+ end
59
+ end
60
+ end
61
+
62
+ ############################################################################
63
+ end # :gem
64
+ ############################################################################
65
+
66
+ Rake::Task[:default].prerequisites.clear
67
+ task :default => 'gem:build'
68
+
69
+ task :clobber => 'gem:clobber'
70
+ end
@@ -0,0 +1,41 @@
1
+ ################################################################################
2
+ namespace :rdoc do
3
+ ################################################################################
4
+
5
+ # Set the paths used by each of the rdoc options.
6
+ rdoc_files = {
7
+ :all => [File.join('**', '*.rb')],
8
+ :test => [File.join('test', 'lib', '**', '*.rb')],
9
+ :app => [
10
+ '*.rb',
11
+ File.join('lib', '**', '*.rb'),
12
+ ],
13
+ }
14
+
15
+ # Base path for the output.
16
+ base_path = 'doc'
17
+
18
+ # Loop through the typs of rdoc files to generate an rdoc task for each one.
19
+ rdoc_files.keys.each do |rdoc_task|
20
+ unless Dir[*rdoc_files[rdoc_task]].length == 0
21
+ Rake::RDocTask.new(
22
+ :rdoc => rdoc_task,
23
+ :clobber_rdoc => "#{rdoc_task}:clobber",
24
+ :rerdoc => "#{rdoc_task}:force") do |rdtask|
25
+ rdtask.rdoc_dir = File.join(base_path, rdoc_task.to_s)
26
+ rdtask.options << '--charset' << 'utf8'
27
+ rdtask.rdoc_files.include(rdoc_files[rdoc_task], 'README')
28
+ rdtask.main = 'README'
29
+ end
30
+
31
+ Rake::Task[rdoc_task].comment =
32
+ "Generate #{rdoc_task} RDoc documentation."
33
+ end
34
+ end
35
+
36
+ CLOBBER.include(base_path)
37
+ ################################################################################
38
+ end # :rdoc
39
+ ################################################################################
40
+
41
+ task :default => ["rdoc:app"]
@@ -0,0 +1,44 @@
1
+ test_dir = 'test'
2
+
3
+ if File.directory?(test_dir)
4
+ ############################################################################
5
+ namespace :test do
6
+ ############################################################################
7
+ # Add a task to run all tests.
8
+ Rake::TestTask.new('all') do |task|
9
+ task.pattern = "#{test_dir}/*_test.rb"
10
+ task.verbose = true
11
+ task.warning = true
12
+ end
13
+ Rake::Task[:all].comment = 'Run all tests'
14
+
15
+ file_list = Dir["#{test_dir}/*_test.rb"]
16
+
17
+ # Add a distinct test task for each test file.
18
+ file_list.each do |item|
19
+ # Get the name to use for the task by removing '_test.rb' from the name.
20
+ task_name = File.basename(item, '.rb').gsub(/_test$/, '')
21
+
22
+ # Add each test.
23
+ Rake::TestTask.new(task_name) do |task|
24
+ task.pattern = item
25
+ task.verbose = true
26
+ task.warning = true
27
+ end
28
+ end
29
+
30
+ file_name = File.basename(Dir.getwd) + '_test.rb'
31
+
32
+ if File.file?("#{test_dir}/#{file_name}")
33
+ desc "Run a single method in #{file_name}."
34
+ task :method, [:method_name] do |t, args|
35
+ puts `ruby ./#{test_dir}/#{file_name} --name #{args[:method_name]}`
36
+ end
37
+ end
38
+ ############################################################################
39
+ end # :test
40
+ ############################################################################
41
+
42
+ Rake::Task[:default].prerequisites.clear
43
+ task :default => 'test:all'
44
+ end
data/lib/rake_tasks.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+ require 'rake/clean'
5
+ require 'tempfile'
6
+
7
+ gem_name = File.basename(__FILE__, '.rb')
8
+
9
+ require_relative File.join(gem_name, 'rdoc')
10
+ require_relative File.join(gem_name, 'gem')
11
+ require_relative File.join(gem_name, 'test')
12
+
13
+ # Include any ruby files in the tasks folder.
14
+ task_files = Dir[File.join(Dir.getwd, 'tasks', '*.rb')]
15
+
16
+ task_files.each do |rake_file|
17
+ require rake_file
18
+ end
@@ -0,0 +1,26 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'rake_tasks'
3
+ s.version = '0.0.1'
4
+
5
+ s.summary = 'Basic rake tasks.'
6
+ s.description = 'RakeTasks contains basic rake tasks ' +
7
+ 'for generating documentation, building gems, and running tests. ' +
8
+ 'It will also find additional rake files if they are included in a ' +
9
+ 'folder named tasks.'
10
+
11
+ s.author = 'Travis Herrick'
12
+ s.email = 'tthetoad@gmail.com'
13
+ s.homepage = 'http://www.bitbucket.org/ToadJamb/gems_rake_tasks'
14
+
15
+ s.license = 'GPLV3'
16
+
17
+ s.extra_rdoc_files << 'README'
18
+
19
+ s.require_paths = ['lib']
20
+ s.files = Dir['lib/**/*.rb', '*']
21
+ s.test_files = Dir['test/**/*.rb']
22
+
23
+ s.add_dependency 'rake', '~> 0.8.7'
24
+
25
+ s.has_rdoc = true
26
+ end
data/rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require 'bundler'
2
+ Bundler.require :rake
3
+
4
+ require_relative 'lib/rake_tasks'
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rake_tasks
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Travis Herrick
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-08-07 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rake
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 8
30
+ - 7
31
+ version: 0.8.7
32
+ type: :runtime
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ description: RakeTasks contains basic rake tasks for generating documentation, building gems, and running tests. It will also find additional rake files if they are included in a folder named tasks.
36
+ email: tthetoad@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ files:
44
+ - lib/rake_tasks/rdoc.rb
45
+ - lib/rake_tasks/gem.rb
46
+ - lib/rake_tasks/test.rb
47
+ - lib/rake_tasks.rb
48
+ - Gemfile.lock
49
+ - Gemfile
50
+ - rakefile
51
+ - README
52
+ - rake_tasks.gemspec
53
+ has_rdoc: true
54
+ homepage: http://www.bitbucket.org/ToadJamb/gems_rake_tasks
55
+ licenses:
56
+ - GPLV3
57
+ post_install_message:
58
+ rdoc_options: []
59
+
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ hash: -4200384229647405180
68
+ segments:
69
+ - 0
70
+ version: "0"
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ requirements: []
80
+
81
+ rubyforge_project:
82
+ rubygems_version: 1.3.7
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Basic rake tasks.
86
+ test_files: []
87
+