db_migration_scaffolder 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,11 @@
1
+ Author: Kristoffer Roupé <kitofr@gmail.com>
2
+ Home page: http://github.com/kitofr/db_migration_scaffolder
3
+
4
+ Database Migration Scaffolder (for the sorry people that doesn't have a proper one)"
5
+
6
+ The scaffolder mimics the regular rails one and posts new 'sql' files to a
7
+ specified folder with unique names. The 'number' generated can be as either an
8
+ integer or a 'date'.
9
+
10
+
11
+
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'tasks/db_migration_scaffolder'
2
+
3
+ task :default => :migrate
4
+
5
+ desc "Default test task"
6
+ database_migration_scaffolder :migrate, [:database, :name] do |t,args|
7
+ t.database = args.database
8
+ t.name = args.name
9
+ t.format = "db/%s/ChangeScripts/%s %s.sql"
10
+ end
@@ -0,0 +1,21 @@
1
+ Gem::Specification.new do |s|
2
+ s.rubygems_version = "1.3.7"
3
+ s.name = "db_migration_scaffolder"
4
+ s.version = "0.0.1"
5
+ s.date = "2011-02-04"
6
+ s.summary = "Database Migration Scaffolder (for the sorry people that doesn't have a proper one)"
7
+ s.description = "The scaffolder mimics the regular rails one and posts new 'sql' files to a specified folder with unique names. The 'number' generated can be as either an integer or a 'date'."
8
+ s.authors = ["Kristoffer Roupé"]
9
+ s.email = "kitofr@gmail.com"
10
+ s.homepage = "http://github.com/kitofr/db_migration_scaffolder"
11
+
12
+ s.add_dependency("rake", "~>0.8.7")
13
+ # = MANIFEST =
14
+ s.files = %w[
15
+ README
16
+ Rakefile
17
+ db_migration_scaffolder.gemspec
18
+ tasks/db_migration_scaffolder.rb
19
+ ]
20
+ # = MANIFEST =
21
+ end
@@ -0,0 +1,51 @@
1
+ def database_migration_scaffolder(*args, &block)
2
+ Tasks::DatabaseMigrationScaffolderTask.define_task(*args, &block)
3
+ end
4
+
5
+ module Tasks
6
+ class DatabaseMigrationScaffolderTask < ::Rake::Task
7
+ attr_accessor :database, :name, :format, :content
8
+
9
+ def initializer(name=:create_db_migration, taskmanager=nil)
10
+ super(name, taskmanager)
11
+ yield self if block_given?
12
+ end
13
+
14
+ def execute(args=nil)
15
+ super(args)
16
+ raise "Need to provide a database and name to create a migration on" unless database && name
17
+
18
+ filename = sprintf(format, database, next_migration_number, name)
19
+ puts ">>> Creating migration in #{filename} <<<"
20
+ File.open(filename, 'w') { |f| f.write(content) }
21
+ end
22
+
23
+ def database
24
+ @database
25
+ end
26
+
27
+ def name
28
+ @name
29
+ end
30
+
31
+ def content
32
+ @content ||= "-- (Initial file content. Put your create/modify below this line)\n\n--//@UNDO (Place your drop/delete below this line)"
33
+ end
34
+
35
+ def format
36
+ @format ||= "./%s/%s %s.sql"
37
+ end
38
+
39
+ def as_date!
40
+ @date = true
41
+ end
42
+
43
+ private
44
+ def next_migration_number
45
+ d = Time.now
46
+ return d.strftime("%Y%m%d%H%M%S") if @date
47
+ d.to_i
48
+ end
49
+ end
50
+ end
51
+
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: db_migration_scaffolder
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - "Kristoffer Roup\xC3\xA9"
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-04 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 49
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 7
34
+ version: 0.8.7
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: The scaffolder mimics the regular rails one and posts new 'sql' files to a specified folder with unique names. The 'number' generated can be as either an integer or a 'date'.
38
+ email: kitofr@gmail.com
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - README
47
+ - Rakefile
48
+ - db_migration_scaffolder.gemspec
49
+ - tasks/db_migration_scaffolder.rb
50
+ has_rdoc: true
51
+ homepage: http://github.com/kitofr/db_migration_scaffolder
52
+ licenses: []
53
+
54
+ post_install_message:
55
+ rdoc_options: []
56
+
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ requirements: []
78
+
79
+ rubyforge_project:
80
+ rubygems_version: 1.3.7
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Database Migration Scaffolder (for the sorry people that doesn't have a proper one)
84
+ test_files: []
85
+