legacy_model_generator 0.0.1 → 0.2.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d7e479f8f3dbcd57f8f4f74a7ccbf68c446b6bb0
4
+ data.tar.gz: 80cdd30dffb1c4d478b848186f6acabf8090a4be
5
+ SHA512:
6
+ metadata.gz: a5758bbe943ac669dcc33916707759d8ca50a0824a9cd0e2cd22ffc4a0bcd722cea50577823e75ef8c9c4559003ff8b31dcc4a77dfed71079ba6ff6a0bd11db6
7
+ data.tar.gz: 76d91939456d5b579016e2699b7089c8c0565c7c0223fcfc4c6b1e3811bbabfcd6cf4d0e71146dfdb24b7002229d860c3bf6a96f1f6cbdff3aee1520b4c8dfaf
data/.gitignore CHANGED
@@ -1,19 +1,19 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .redcar
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .redcar
19
19
  .DS_Store
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in legacy_model_generator.gemspec
4
- gemspec
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in legacy_model_generator.gemspec
4
+ gemspec
data/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- Copyright (c) 2012 BlackSliverado
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1
+ Copyright (c) 2012 BlackSliverado
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
22
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,29 +1,29 @@
1
- # LegacyModelGenerator
2
-
3
- TODO: Write a gem description
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'legacy_model_generator'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install legacy_model_generator
18
-
19
- ## Usage
20
-
21
- TODO: Write usage instructions here
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 'Added some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
1
+ # LegacyModelGenerator
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'legacy_model_generator'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install legacy_model_generator
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
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 'Added some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -1,18 +1,18 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/legacy_model_generator/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["Allan Davis"]
6
- gem.email = ["cajun.code@gmail.com"]
7
- gem.description = %q{Model from legancy database}
8
- gem.summary = %q{Tools for creating model from legancy database.}
9
- gem.homepage = ""
10
-
11
- gem.files = `git ls-files`.split($\)
12
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = "legacy_model_generator"
15
- gem.require_paths = ["lib"]
16
- gem.version = LegacyModelGenerator::VERSION
17
- gem.add_dependency "rails"
18
- end
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/legacy_model_generator/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Allan Davis"]
6
+ gem.email = ["cajun.code@gmail.com"]
7
+ gem.description = %q{Model from legancy database}
8
+ gem.summary = %q{Tools for creating model from legancy database.}
9
+ gem.homepage = ""
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "legacy_model_generator"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = LegacyModelGenerator::VERSION
17
+ gem.add_dependency "rails"
18
+ end
@@ -1,8 +1,8 @@
1
- Description:
2
- Explain the generator
3
-
4
- Example:
5
- rails generate schema2model Thing
6
-
7
- This will create:
8
- what/will/it/create
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate schema2model Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -1,27 +1,61 @@
1
- class Schema2modelGenerator < Rails::Generators::Base
2
- source_root File.expand_path('../templates', __FILE__)
3
-
4
-
5
-
6
- def get_list_of_models
7
- @models = ActiveRecord::Base.connection.tables
8
- end
9
-
10
- def create_models
11
- @models.each do |model_name|
12
- @table = Arel::Table.new(model_name.to_sym)
13
-
14
- template "model.rb", "app/models/#{model_name.underscore}.rb" #, :table_name => model_name
15
- end
16
- end
17
-
18
- def pk
19
- @table.primary_key.name
20
- end
21
- def clazz_name
22
- @table.name.camelcase
23
- end
24
- def table_name
25
- @table.name
26
- end
27
- end
1
+ class Schema2modelGenerator < Rails::Generators::Base
2
+ source_root File.expand_path('../templates', __FILE__)
3
+ class_option :verbose, :type => :boolean
4
+ class_option :namespace, :type => :boolean, :default => true, :descr => "Wrap modules in Namespace"
5
+ class_option :schema, :type => :string, :default => Rails.env, :required => false, :desc => "Specifies what schema to use for the models"
6
+ argument :namespace_name, :type => :string, :default => ""
7
+
8
+ def get_list_of_models
9
+ ActiveRecord::Base.establish_connection(options[:schema].to_sym) if options[:schema]
10
+
11
+ @models = ActiveRecord::Base.connection.tables
12
+ @schema = options[:schema]
13
+ end
14
+
15
+ def create_models
16
+ puts "Number of models #{@models.count} " if options[:verbose]
17
+ puts @models if options[:verbose]
18
+ @models.sort.each do |model_name|
19
+ next if model_name == "schema_migrations"
20
+ @table = Arel::Table.new(model_name.to_sym)
21
+ puts "Generating Class(#{clazz_name}) for #{table_name}" if options[:verbose]
22
+ if options.namespace
23
+ template "namespace_model.rb", "app/models/#{@namespace_name.downcase}/#{model_name.underscore}.rb"
24
+ else
25
+ template "model.rb", "app/models/#{model_name.underscore}.rb" #, :table_name => model_name
26
+ end
27
+ puts "Completed Generating Class(#{clazz_name}) " if options[:verbose]
28
+ end
29
+ end
30
+
31
+ def pk?
32
+ !@table.primary_key.blank?
33
+ end
34
+ def pk
35
+ puts "Primary Key: '#{@table.primary_key}'" if options[:verbose]
36
+ @table.primary_key.name
37
+ end
38
+ def clazz_name
39
+ @table.name.camelcase
40
+ end
41
+ def table_name
42
+ @table.name
43
+ end
44
+ def module_name
45
+ @namespace_name.camelcase
46
+ end
47
+
48
+ def schema_name
49
+ if(schema_includes_env?)
50
+ @schema.sub(Rails.env, "")
51
+ else
52
+ schema
53
+ end
54
+ end
55
+ def schema_change?
56
+ @schema != Rails.env
57
+ end
58
+ def schema_includes_env?
59
+ @schema.include?(Rails.env)
60
+ end
61
+ end
@@ -1,4 +1,9 @@
1
- class <%= clazz_name %> < ActiveRecord::Base
2
- self.table_name = "<%= table_name %>"
3
- self.primary_key = "<%= pk %>"
1
+ class <%= clazz_name %> < ActiveRecord::Base
2
+ self.table_name = "<%= table_name %>"
3
+ <% if pk? %>
4
+ self.primary_key = "<%= pk %>"
5
+ <% end %>
6
+ <% if schema_change? %>
7
+ establish_connection "<%= schema_name %><%= '#{Rails.env}' if schema_includes_env? %>".to_sym
8
+ <% end %>
4
9
  end
@@ -0,0 +1,12 @@
1
+ module <%= module_name %>
2
+ class <%= clazz_name %> < ActiveRecord::Base
3
+ self.table_name = "<%= table_name %>"
4
+ <% if pk? %>
5
+ self.primary_key = "<%= pk %>"
6
+ <% end %>
7
+ <% if schema_change? %>
8
+ establish_connection "<%= schema_name %><%= '#{Rails.env}' if schema_includes_env? %>".to_sym
9
+ <% end %>
10
+
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
- require "legacy_model_generator/version"
2
-
3
- module LegacyModelGenerator
4
- # Your code goes here...
5
- end
1
+ require "legacy_model_generator/version"
2
+
3
+ module LegacyModelGenerator
4
+ # Your code goes here...
5
+ end
@@ -1,3 +1,3 @@
1
- module LegacyModelGenerator
2
- VERSION = "0.0.1"
3
- end
1
+ module LegacyModelGenerator
2
+ VERSION = "0.2.0"
3
+ end
metadata CHANGED
@@ -1,27 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legacy_model_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Allan Davis
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-08 00:00:00.000000000 Z
11
+ date: 2016-08-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: &70363950487860 !ruby/object:Gem::Requirement
17
- none: false
14
+ requirement: !ruby/object:Gem::Requirement
18
15
  requirements:
19
- - - ! '>='
16
+ - - ">="
20
17
  - !ruby/object:Gem::Version
21
18
  version: '0'
22
- type: :runtime
19
+ name: rails
23
20
  prerelease: false
24
- version_requirements: *70363950487860
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  description: Model from legancy database
26
28
  email:
27
29
  - cajun.code@gmail.com
@@ -29,7 +31,7 @@ executables: []
29
31
  extensions: []
30
32
  extra_rdoc_files: []
31
33
  files:
32
- - .gitignore
34
+ - ".gitignore"
33
35
  - Gemfile
34
36
  - LICENSE
35
37
  - README.md
@@ -38,30 +40,30 @@ files:
38
40
  - lib/generators/schema2model/USAGE
39
41
  - lib/generators/schema2model/schema2model_generator.rb
40
42
  - lib/generators/schema2model/templates/model.rb
43
+ - lib/generators/schema2model/templates/namespace_model.rb
41
44
  - lib/legacy_model_generator.rb
42
45
  - lib/legacy_model_generator/version.rb
43
46
  homepage: ''
44
47
  licenses: []
45
- post_install_message:
48
+ metadata: {}
49
+ post_install_message:
46
50
  rdoc_options: []
47
51
  require_paths:
48
52
  - lib
49
53
  required_ruby_version: !ruby/object:Gem::Requirement
50
- none: false
51
54
  requirements:
52
- - - ! '>='
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '0'
55
58
  required_rubygems_version: !ruby/object:Gem::Requirement
56
- none: false
57
59
  requirements:
58
- - - ! '>='
60
+ - - ">="
59
61
  - !ruby/object:Gem::Version
60
62
  version: '0'
61
63
  requirements: []
62
- rubyforge_project:
63
- rubygems_version: 1.8.10
64
- signing_key:
65
- specification_version: 3
64
+ rubyforge_project:
65
+ rubygems_version: 2.6.4
66
+ signing_key:
67
+ specification_version: 4
66
68
  summary: Tools for creating model from legancy database.
67
69
  test_files: []