rails_reverse_db 0.0.1.alpha → 0.0.5

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.md CHANGED
@@ -1,4 +1,32 @@
1
- Gem for reverse engineering a mysql or sqlite database
1
+ # Rails Reverse Db [![Build Status](https://secure.travis-ci.org/cmckni3/rails_reverse_db.png)](http://travis-ci.org/cmckni3/rails_reverse_db) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/cmckni3/rails_reverse_db)
2
+
3
+ Gem for reverse engineering an existing database using ActiveRecord
2
4
 
3
5
  Runs the rails scaffolding command with the appropriate arguments
4
- to generate models, controllers, tests, etc from an existing database
6
+ to generate models, controllers, tests, etc from an existing database
7
+
8
+ ## Installation
9
+
10
+ gem 'rails_reverse_db'
11
+
12
+ ## Usage
13
+
14
+ `bundle exec rake reverse_engineer OPTIONS` OR `rake reverse_engineer OPTIONS`
15
+
16
+ By default this will run `rails generate scaffold TableName column:string`
17
+
18
+ ## Copyright
19
+
20
+ Copyright (c) 2012-2013 Chris McKnight and [Anthony Heukmes](https://github.com/ahe/) (2009-2013). Licensed under the MIT License
21
+
22
+ ## Contributing
23
+
24
+ 1. Fork it
25
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
27
+ 4. Push to the branch (`git push origin my-new-feature`)
28
+ 5. Create new Pull Request
29
+
30
+ ## Thanks
31
+
32
+ Inspired by and uses a little modified code from [Anthony Heukmes](https://github.com/ahe/) [Reverse Scaffold Script](https://github.com/ahe/reverse_scaffold)
data/README.rdoc CHANGED
@@ -1,3 +1,33 @@
1
- = RailsReverseDb
1
+ = Rails Reverse Db {<img src="https://secure.travis-ci.org/cmckni3/rails_reverse_db.png" />}[https://secure.travis-ci.org/cmckni3/rails_reverse_db]]
2
+ {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/cmckni3/rails_reverse_db]
2
3
 
3
- This project rocks and uses MIT-LICENSE.
4
+ Gem for reverse engineering an existing database using ActiveRecord
5
+
6
+ Runs the rails scaffolding command with the appropriate arguments
7
+ to generate models, controllers, tests, etc from an existing database
8
+
9
+ == Installation
10
+
11
+ gem 'rails_reverse_db'
12
+
13
+ == Usage
14
+
15
+ `bundle exec rake reverse_engineer OPTIONS` OR `rake reverse_engineer OPTIONS`
16
+
17
+ By default this will run `rails generate scaffold TableName column:string`
18
+
19
+ == Copyright
20
+
21
+ Copyright (c) 2012-2013 Chris McKnight and [Anthony Heukmes](https://github.com/ahe/) (2009-2013). Licensed under the MIT License
22
+
23
+ == Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
30
+
31
+ == Thanks
32
+
33
+ Inspired by and uses a little modified code from [Anthony Heukmes](https://github.com/ahe/) [Reverse Scaffold Script](https://github.com/ahe/reverse_scaffold)
@@ -1,34 +1,31 @@
1
1
  require 'rails_reverse_db/rails_reverse_db_helper'
2
2
 
3
3
  module RailsReverseDb
4
- require 'rails_reverse_db/railtie.rb' if defined?(Rails)
4
+ raise "This gem must be run from a Rails Application" if not defined?(Rails)
5
+ require 'rails_reverse_db/railtie.rb'
5
6
  class RailsReverseDb
6
7
 
7
8
  delegate :connection, :establish_connection, to: ActiveRecord::Base
8
9
 
9
- def initialize
10
+ def initialize(options = {})
11
+ @pk = options[:pk] || 'id'
12
+ @models = options[:models] || false
13
+ @exclude = options[:exclude] || false
14
+ @interactive = options[:i] || false
10
15
  environments = [Rails.env]
11
16
 
12
17
  configurations = ActiveRecord::Base.configurations.values_at(*environments)
13
18
  @configuration = configurations.first
14
- @pk = 'id'
15
19
  establish_connection @configuration
16
-
17
- # configurations = ActiveRecord::Base.configurations.values_at(*environments)
18
- # configurations.compact.each do |configuration|
19
- # yield configuration unless configuration['database'].blank?
20
- # end
21
20
  end
22
21
 
23
22
  def get_tables
24
- tables = ActiveRecord::Base.connection.execute("SHOW TABLES")
25
- tables = tables.to_a.map(&:join)
26
- tables.each do |table|
27
- end
28
- tables
23
+ tables = ActiveRecord::Base.connection.tables
24
+ # remove some tables that are used for migrations
25
+ tables - ["schema_migrations", "propel_migration", "migration_version"]
29
26
  end
30
27
 
31
- def run
28
+ def generate
32
29
  tables = self.get_tables
33
30
  tables.each do |table|
34
31
  if RailsReverseDbHelper::RailsReverseDbHelper.test_singularity(table)
@@ -44,13 +41,15 @@ module RailsReverseDb
44
41
  singular = RailsReverseDbHelper::RailsReverseDbHelper.ucwords(singular)
45
42
  singular.gsub!(' ', '')
46
43
 
44
+ # Credit to Anthony Heukmes for the next few lines
45
+ # Modified to work with my gem
47
46
  eval "class #{singular} < ActiveRecord::Base; set_table_name '#{table}' end"
48
47
  klass = eval "#{singular}"
49
48
  reverse_command = "rails generate scaffold #{singular} "
50
49
  klass.columns.each do |col|
51
50
  reverse_command << col.name + ":" + col.type.to_s + " " unless col.name == @pk
52
51
  end
53
- # system reverse_command + opts.skip_migration
52
+ system reverse_command
54
53
  end
55
54
  end
56
55
  end
@@ -1,9 +1,30 @@
1
1
  require 'rails_reverse_db/rails_reverse_db_helper'
2
2
 
3
- namespace :rails_reverse_db do
4
- desc "Generate scaffolding from tables in database"
5
- task :scaffold => :environment do
6
- g = RailsReverseDb::RailsReverseDb.new
7
- g.run
3
+ desc "Generate migrations, models, or scaffold from tables in database"
4
+ task :reverse_engineer => :environment do
5
+ options = { }
6
+ options[:pk] ||= ENV['pk']
7
+ options[:models] = ENV['models'] || []
8
+ options[:exclude] = ENV['exclude'] || []
9
+ options[:i] ||= ENV['i']
10
+
11
+ if (!options[:models].empty?) and (!options[:exclude].empty?)
12
+ raise "The models and exclude arguments should not be used in conjunction with each other. Use one or the other."
13
+ end
14
+
15
+ g = RailsReverseDb::RailsReverseDb.new(options)
16
+ g.generate
17
+ end
18
+
19
+ namespace :reverse_engineer do
20
+ desc "Reverse Engineer Help"
21
+ task :help => :environment do
22
+ puts "Run rake reverse_engineer to "
23
+ # File.read('docs/help.txt')
24
+ end
25
+
26
+ desc "Reverse Engineer Version"
27
+ task :version => :environment do
28
+ puts RailsReverseDb::VERSION
8
29
  end
9
30
  end
@@ -1,3 +1,3 @@
1
1
  module RailsReverseDb
2
- VERSION = "0.0.1.alpha"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_reverse_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha
5
- prerelease: 6
4
+ version: 0.0.5
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chris McKnight
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-03 00:00:00.000000000 Z
12
+ date: 2013-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 3.2.6
21
+ version: 3.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,64 +26,16 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 3.2.6
29
+ version: 3.2.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: rspec-rails
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: capybara
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: guard-rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: guard-spork
31
+ name: sqlite3
80
32
  requirement: !ruby/object:Gem::Requirement
81
33
  none: false
82
34
  requirements:
83
35
  - - ! '>='
84
36
  - !ruby/object:Gem::Version
85
37
  version: '0'
86
- type: :development
38
+ type: :runtime
87
39
  prerelease: false
88
40
  version_requirements: !ruby/object:Gem::Requirement
89
41
  none: false
@@ -92,7 +44,7 @@ dependencies:
92
44
  - !ruby/object:Gem::Version
93
45
  version: '0'
94
46
  - !ruby/object:Gem::Dependency
95
- name: sqlite3
47
+ name: mysql2
96
48
  requirement: !ruby/object:Gem::Requirement
97
49
  none: false
98
50
  requirements:
@@ -108,7 +60,7 @@ dependencies:
108
60
  - !ruby/object:Gem::Version
109
61
  version: '0'
110
62
  - !ruby/object:Gem::Dependency
111
- name: mysql2
63
+ name: pg
112
64
  requirement: !ruby/object:Gem::Requirement
113
65
  none: false
114
66
  requirements:
@@ -170,13 +122,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
122
  version: '0'
171
123
  segments:
172
124
  - 0
173
- hash: 3402952440522818133
125
+ hash: -1696451438507368891
174
126
  required_rubygems_version: !ruby/object:Gem::Requirement
175
127
  none: false
176
128
  requirements:
177
- - - ! '>'
129
+ - - ! '>='
178
130
  - !ruby/object:Gem::Version
179
- version: 1.3.1
131
+ version: '0'
132
+ segments:
133
+ - 0
134
+ hash: -1696451438507368891
180
135
  requirements: []
181
136
  rubyforge_project:
182
137
  rubygems_version: 1.8.23