db_migration_scaffolder 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/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
+