common_project_tasks 0.3.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/LICENSE +7 -0
- data/README +41 -0
- data/examples/app_vars.yml +21 -0
- data/lib/common_project_tasks.rb +4 -0
- data/lib/common_project_tasks/app.rake +86 -0
- metadata +74 -0
data/LICENSE
ADDED
data/README
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
CommonProjectTasks
|
2
|
+
===============
|
3
|
+
|
4
|
+
Rails gem/plugin to load common project tasks.
|
5
|
+
|
6
|
+
|
7
|
+
Once the plugin is installed add the following to {RAILS_ROOT}/Rakefile
|
8
|
+
|
9
|
+
require 'common_project_tasks'
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
Each project will need a {RAILS_ROOT}/config/app_vars.yml file. Each environment list in the database.yml
|
14
|
+
file should also be listed in app_vars.yml. The supported attributes are:
|
15
|
+
|
16
|
+
* rebuild_database [true/false]
|
17
|
+
* load_fixtures [true/false]
|
18
|
+
* fixtures [fixture1,fixture2,fixture3] (specify in order you want them to load)
|
19
|
+
|
20
|
+
|
21
|
+
The app_vars.yml file should look something like.
|
22
|
+
Note: This example can be found in {COMMON_PROJECT_TASKS_PLUGIN}/examples/app_vars.yml.
|
23
|
+
|
24
|
+
###############################################
|
25
|
+
app_vars: &app_vars
|
26
|
+
rebuild_database: true
|
27
|
+
load_fixtures: true
|
28
|
+
fixtures: 'states,users,permissions'
|
29
|
+
|
30
|
+
development:
|
31
|
+
<<: *app_vars
|
32
|
+
|
33
|
+
test:
|
34
|
+
<<: *app_vars
|
35
|
+
|
36
|
+
production:
|
37
|
+
rebuild_database: false
|
38
|
+
load_fixtures: false
|
39
|
+
<<: *app_vars
|
40
|
+
|
41
|
+
###############################################
|
@@ -0,0 +1,21 @@
|
|
1
|
+
app_vars: &app_vars
|
2
|
+
rebuild_database: true
|
3
|
+
run_db_migrate: true
|
4
|
+
load_fixtures: true
|
5
|
+
fixtures: 'states,users,permissions'
|
6
|
+
# post_fixture_tasks: some_rake_task_to_run
|
7
|
+
# load_sql_file: 'db/sql/roar_production_data_only-2008-07-25.sql'
|
8
|
+
# update_git_submodules: false
|
9
|
+
|
10
|
+
development:
|
11
|
+
load_sql_file: '/db/sql/roar_production_data_only-2008-07-25.sql'
|
12
|
+
<<: *app_vars
|
13
|
+
|
14
|
+
test:
|
15
|
+
load_sql_file: '/db/sql/roar_production_data_only-2008-07-25.sql'
|
16
|
+
<<: *app_vars
|
17
|
+
|
18
|
+
production:
|
19
|
+
rebuild_database: false
|
20
|
+
load_fixtures: false
|
21
|
+
<<: *app_vars
|
@@ -0,0 +1,86 @@
|
|
1
|
+
namespace :app do
|
2
|
+
desc 'Setup the application. Usage: rake app:setup. Set RAILS_ENV for other environments. The default is development'
|
3
|
+
task :setup do
|
4
|
+
ENV['RAILS_ENV'] = 'development' unless ENV.include?('RAILS_ENV')
|
5
|
+
|
6
|
+
file = "#{RAILS_ROOT}/config/app_vars.yml"
|
7
|
+
app_vars = YAML::load(ERB.new(IO.read(file)).result)
|
8
|
+
|
9
|
+
file = "#{RAILS_ROOT}/config/database.yml"
|
10
|
+
database = YAML::load(ERB.new(IO.read(file)).result)
|
11
|
+
|
12
|
+
# update git submodules in case new ones were added
|
13
|
+
if !app_vars[ENV['RAILS_ENV']]['update_git_submodules'].nil? and app_vars[ENV['RAILS_ENV']]['update_git_submodules'] == true
|
14
|
+
system('git submodule init')
|
15
|
+
system('git submodule update')
|
16
|
+
end
|
17
|
+
|
18
|
+
if !app_vars[ENV['RAILS_ENV']]['rebuild_database'].nil? and app_vars[ENV['RAILS_ENV']]['rebuild_database'] == true
|
19
|
+
Rake::Task['db:drop'].invoke
|
20
|
+
Rake::Task['db:create'].invoke
|
21
|
+
end
|
22
|
+
|
23
|
+
if !app_vars[ENV['RAILS_ENV']]['run_db_migrate'].nil? and app_vars[ENV['RAILS_ENV']]['run_db_migrate'] == true
|
24
|
+
Rake::Task['db:migrate'].invoke
|
25
|
+
end
|
26
|
+
|
27
|
+
if !app_vars[ENV['RAILS_ENV']]['load_fixtures'].nil? and app_vars[ENV['RAILS_ENV']]['load_fixtures'] == true
|
28
|
+
ENV['FIXTURES'] = app_vars[ENV['RAILS_ENV']]['fixtures']
|
29
|
+
Rake::Task['spec:db:fixtures:load'].invoke
|
30
|
+
end
|
31
|
+
|
32
|
+
unless app_vars[ENV['RAILS_ENV']]['post_fixture_tasks'].nil?
|
33
|
+
begin
|
34
|
+
Rake::Task[app_vars[ENV['RAILS_ENV']]['post_fixture_tasks']].invoke
|
35
|
+
rescue
|
36
|
+
puts 'There was an error invoking the post fixture task. Make sure it exists.'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
unless app_vars[ENV['RAILS_ENV']]['load_sql_file'].nil?
|
41
|
+
begin
|
42
|
+
path_to_sql_file = app_vars[ENV['RAILS_ENV']]['load_sql_file']
|
43
|
+
db = database[ENV['RAILS_ENV']]['database']
|
44
|
+
username = database[ENV['RAILS_ENV']]['username']
|
45
|
+
password = database[ENV['RAILS_ENV']]['password']
|
46
|
+
ENV['PGUSER'] = username
|
47
|
+
ENV['PGPASSWORD'] = password
|
48
|
+
system("psql -d #{db} < #{path_to_sql_file}")
|
49
|
+
rescue
|
50
|
+
puts 'There was an error loading sql file'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
##############################################
|
57
|
+
# The tasks below will not work because the
|
58
|
+
# commandline argument RAILS_ENV has already
|
59
|
+
# been read by the Rails environment by the
|
60
|
+
# time this task is executed.
|
61
|
+
##############################################
|
62
|
+
|
63
|
+
# desc 'Setup the application for production.'
|
64
|
+
# task :setup_production => :environment do
|
65
|
+
# ENV['RAILS_ENV'] = 'production'
|
66
|
+
# Rake::Task['app:setup'].invoke
|
67
|
+
# end
|
68
|
+
#
|
69
|
+
# desc 'Setup the application for development.'
|
70
|
+
# task :setup_development => :environment do
|
71
|
+
# ENV['RAILS_ENV'] = 'development'
|
72
|
+
# Rake::Task['app:setup'].invoke
|
73
|
+
# end
|
74
|
+
#
|
75
|
+
# desc 'Setup the application for testing.'
|
76
|
+
# task :setup_test => :environment do
|
77
|
+
# ENV['RAILS_ENV'] = 'test'
|
78
|
+
# Rake::Task['app:setup'].invoke
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# desc 'Setup the application for production, development and testing environments.'
|
82
|
+
# task :setup_all => [:setup_production, :setup_development, :setup_test]
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: common_project_tasks
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wes Hays
|
8
|
+
- John Dell
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2009-11-25 00:00:00 -08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rake
|
18
|
+
type: :runtime
|
19
|
+
version_requirement:
|
20
|
+
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.8.3
|
25
|
+
version:
|
26
|
+
description: Rails gem/plugin to load common project tasks.
|
27
|
+
email: gems@gbdev.com
|
28
|
+
executables: []
|
29
|
+
|
30
|
+
extensions: []
|
31
|
+
|
32
|
+
extra_rdoc_files:
|
33
|
+
- README
|
34
|
+
- LICENSE
|
35
|
+
files:
|
36
|
+
- LICENSE
|
37
|
+
- README
|
38
|
+
- lib/common_project_tasks.rb
|
39
|
+
- lib/common_project_tasks/app.rake
|
40
|
+
- examples/app_vars.yml
|
41
|
+
has_rdoc: true
|
42
|
+
homepage: http://github.com/gbdev/common_project_tasks
|
43
|
+
licenses: []
|
44
|
+
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options:
|
47
|
+
- --title
|
48
|
+
- Common Project Tasks Documentation
|
49
|
+
- --main
|
50
|
+
- README
|
51
|
+
- -q
|
52
|
+
require_paths:
|
53
|
+
- lib/
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: "0"
|
65
|
+
version:
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project: Project on www.github.com
|
69
|
+
rubygems_version: 1.3.5
|
70
|
+
signing_key:
|
71
|
+
specification_version: 3
|
72
|
+
summary: Rails gem/plugin to load common project tasks.
|
73
|
+
test_files: []
|
74
|
+
|