secondbase 0.3.2 → 0.3.3

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/Rakefile CHANGED
@@ -19,6 +19,7 @@ Jeweler::Tasks.new do |gem|
19
19
  gem.description = %Q{Secondbase provides support to Rails to create a homogeneous for a dual database project. Using the rake tasks already familiar to you, this gem enables Rails to work with two primary databases, instead of just one.}
20
20
  gem.email = "kdurante@customink.com"
21
21
  gem.authors = ["karledurante"]
22
+ gem.add_development_dependency 'activerecord', '~> 3.0.0'
22
23
  # Include your dependencies below. Runtime dependencies are required when using your gem,
23
24
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
25
  # gem.add_runtime_dependency 'jabber4r', '> 0.1'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -9,26 +9,11 @@ Description:
9
9
  column lines from supplied attributes: AddColumnsToTable or RemoveColumnsFromTable
10
10
 
11
11
  Example:
12
- `rails generate secondbase_migration AddSslFlag`
12
+ `rails generate secondbase:migration AddSslFlag`
13
13
 
14
14
  If the current date is May 14, 2008 and the current time 09:09:12, this creates the AddSslFlag migration
15
15
  db/migrate/secondbase/20080514090912_add_ssl_flag.rb
16
16
 
17
- `rails generate secondbase_migration AddTitleBodyToPost title:string body:text published:boolean`
18
-
19
- This will create the AddTitleBodyToPost in db/migrate/secondbase/20080514090912_add_title_body_to_post.rb with
20
- this in the Up migration:
21
-
22
- add_column :posts, :title, :string
23
- add_column :posts, :body, :text
24
- add_column :posts, :published, :boolean
25
-
26
- And this in the Down migration:
27
-
28
- remove_column :posts, :published
29
- remove_column :posts, :body
30
- remove_column :posts, :title
31
-
32
17
  You can continue to use `rake db:migrate` to migrate your first and second databases, or you can
33
18
  target secondbase by using `rake db:migrate:secondbase`. Remember, your migrations are timestamped,
34
19
  so regardless of the database they target, they will be unique and you will not have collision issues.
@@ -0,0 +1,29 @@
1
+ Description:
2
+ Stubs out a new database migration. Pass the migration name, either
3
+ CamelCased or under_scored, and an optional list of attribute pairs as arguments.
4
+
5
+ A migration class is generated in db/migrate_mysql prefixed by a timestamp of the current date and time.
6
+
7
+ You can name your migration in either of these formats to generate add/remove
8
+ column lines from supplied attributes: AddColumnsToTable or RemoveColumnsFromTable
9
+
10
+ Example:
11
+ `./script/generate secondbase_migration AddSslFlag`
12
+
13
+ If the current date is May 14, 2008 and the current time 09:09:12, this creates the AddSslFlag migration
14
+ db/migrate_mysql/20080514090912_add_ssl_flag.rb
15
+
16
+ `./script/generate secondbase_migration AddTitleBodyToPost title:string body:text published:boolean`
17
+
18
+ This will create the AddTitleBodyToPost in db/migrate_mysql/20080514090912_add_title_body_to_post.rb with
19
+ this in the Up migration:
20
+
21
+ add_column :posts, :title, :string
22
+ add_column :posts, :body, :text
23
+ add_column :posts, :published, :boolean
24
+
25
+ And this in the Down migration:
26
+
27
+ remove_column :posts, :published
28
+ remove_column :posts, :body
29
+ remove_column :posts, :title
@@ -0,0 +1,20 @@
1
+ class SecondbaseMigrationGenerator < Rails::Generator::NamedBase
2
+ def manifest
3
+ record do |m|
4
+ m.migration_template 'migration.rb', "db/migrate/#{SecondBase::CONNECTION_PREFIX}", :assigns => get_local_assigns
5
+ end
6
+ end
7
+
8
+
9
+ private
10
+ def get_local_assigns
11
+ returning(assigns = {}) do
12
+ if class_name.underscore =~ /^(add|remove)_.*_(?:to|from)_(.*)/
13
+ assigns[:migration_action] = $1
14
+ assigns[:table_name] = $2.pluralize
15
+ else
16
+ assigns[:attributes] = []
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ class <%= class_name.underscore.camelize %> < ActiveRecord::Migration
2
+ ############################################################
3
+ # Database migration targeting the Secondbase!
4
+ # Generated using: ./script/generator secondbase_migration [ModelName]
5
+
6
+ def self.up<% attributes.each do |attribute| %>
7
+ <%= migration_action %>_column :<%= table_name %>, :<%= attribute.name %><% if migration_action == 'add' %>, :<%= attribute.type %><% end -%>
8
+ <%- end %>
9
+ end
10
+
11
+ def self.down<% attributes.reverse.each do |attribute| %>
12
+ <%= migration_action == 'add' ? 'remove' : 'add' %>_column :<%= table_name %>, :<%= attribute.name %><% if migration_action == 'remove' %>, :<%= attribute.type %><% end -%>
13
+ <%- end %>
14
+ end
15
+ end
data/secondbase.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{secondbase}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["karledurante"]
12
- s.date = %q{2010-12-29}
12
+ s.date = %q{2011-01-28}
13
13
  s.description = %q{Secondbase provides support to Rails to create a homogeneous for a dual database project. Using the rake tasks already familiar to you, this gem enables Rails to work with two primary databases, instead of just one.}
14
14
  s.email = %q{kdurante@customink.com}
15
15
  s.extra_rdoc_files = [
@@ -33,6 +33,9 @@ Gem::Specification.new do |s|
33
33
  "lib/secondbase/railtie.rb",
34
34
  "lib/secondbase/rake_method_chain.rb",
35
35
  "lib/secondbase/tasks.rb",
36
+ "rails_generators/secondbase/USAGE",
37
+ "rails_generators/secondbase/secondbase_migration_generator.rb",
38
+ "rails_generators/secondbase/templates/migration.rb",
36
39
  "secondbase.gemspec",
37
40
  "test/helper.rb",
38
41
  "test/test_secondbase.rb"
@@ -56,17 +59,20 @@ Gem::Specification.new do |s|
56
59
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
57
60
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
58
61
  s.add_development_dependency(%q<activerecord>, ["~> 3.0.0"])
62
+ s.add_development_dependency(%q<activerecord>, ["~> 3.0.0"])
59
63
  else
60
64
  s.add_dependency(%q<shoulda>, [">= 0"])
61
65
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
66
  s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
63
67
  s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
68
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
64
69
  end
65
70
  else
66
71
  s.add_dependency(%q<shoulda>, [">= 0"])
67
72
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
68
73
  s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
69
74
  s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
75
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
70
76
  end
71
77
  end
72
78
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secondbase
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - karledurante
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-29 00:00:00 -05:00
18
+ date: 2011-01-28 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -80,6 +80,22 @@ dependencies:
80
80
  - 0
81
81
  version: 3.0.0
82
82
  requirement: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ prerelease: false
85
+ type: :development
86
+ name: activerecord
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ hash: 7
93
+ segments:
94
+ - 3
95
+ - 0
96
+ - 0
97
+ version: 3.0.0
98
+ requirement: *id005
83
99
  description: Secondbase provides support to Rails to create a homogeneous for a dual database project. Using the rake tasks already familiar to you, this gem enables Rails to work with two primary databases, instead of just one.
84
100
  email: kdurante@customink.com
85
101
  executables: []
@@ -106,6 +122,9 @@ files:
106
122
  - lib/secondbase/railtie.rb
107
123
  - lib/secondbase/rake_method_chain.rb
108
124
  - lib/secondbase/tasks.rb
125
+ - rails_generators/secondbase/USAGE
126
+ - rails_generators/secondbase/secondbase_migration_generator.rb
127
+ - rails_generators/secondbase/templates/migration.rb
109
128
  - secondbase.gemspec
110
129
  - test/helper.rb
111
130
  - test/test_secondbase.rb