model_from_table 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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/lib/generators/model_from_table_generator.rb +54 -0
  5. data/lib/generators/templates/model.rb +8 -0
  6. data/lib/model_from_table/version.rb +3 -0
  7. data/lib/model_from_table.rb +2 -0
  8. data/lib/tasks/model_from_table_tasks.rake +4 -0
  9. data/test/dummy/README.rdoc +28 -0
  10. data/test/dummy/Rakefile +6 -0
  11. data/test/dummy/app/assets/javascripts/application.js +13 -0
  12. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  13. data/test/dummy/app/controllers/application_controller.rb +5 -0
  14. data/test/dummy/app/helpers/application_helper.rb +2 -0
  15. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  16. data/test/dummy/bin/bundle +3 -0
  17. data/test/dummy/bin/rails +4 -0
  18. data/test/dummy/bin/rake +4 -0
  19. data/test/dummy/config/application.rb +23 -0
  20. data/test/dummy/config/boot.rb +5 -0
  21. data/test/dummy/config/database.yml +26 -0
  22. data/test/dummy/config/environment.rb +5 -0
  23. data/test/dummy/config/environments/development.rb +37 -0
  24. data/test/dummy/config/environments/production.rb +82 -0
  25. data/test/dummy/config/environments/test.rb +39 -0
  26. data/test/dummy/config/initializers/assets.rb +8 -0
  27. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  28. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  29. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  30. data/test/dummy/config/initializers/inflections.rb +16 -0
  31. data/test/dummy/config/initializers/mime_types.rb +4 -0
  32. data/test/dummy/config/initializers/session_store.rb +3 -0
  33. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  34. data/test/dummy/config/locales/en.yml +23 -0
  35. data/test/dummy/config/routes.rb +56 -0
  36. data/test/dummy/config/secrets.yml +22 -0
  37. data/test/dummy/config.ru +4 -0
  38. data/test/dummy/db/development.sqlite3 +0 -0
  39. data/test/dummy/db/migrate/20140728150510_create_tables.rb +16 -0
  40. data/test/dummy/db/schema.rb +28 -0
  41. data/test/dummy/db/test.sqlite3 +0 -0
  42. data/test/dummy/log/development.log +97 -0
  43. data/test/dummy/log/test.log +1047 -0
  44. data/test/dummy/public/404.html +67 -0
  45. data/test/dummy/public/422.html +67 -0
  46. data/test/dummy/public/500.html +66 -0
  47. data/test/dummy/public/favicon.ico +0 -0
  48. data/test/model_from_table_generator_test.rb +55 -0
  49. data/test/test_helper.rb +19 -0
  50. data/test/tmp/app/models/company.rb +3 -0
  51. data/test/tmp/app/models/legacy_table.rb +4 -0
  52. data/test/tmp/app/models/user.rb +2 -0
  53. metadata +182 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,55 @@
1
+ require 'test_helper'
2
+ require 'generators/model_from_table_generator'
3
+
4
+ class ModelFromTableGeneratorTest < Rails::Generators::TestCase
5
+ tests ModelFromTableGenerator
6
+ destination File.expand_path("../tmp", __FILE__)
7
+ setup :prepare_destination
8
+
9
+ test "all files are created" do
10
+ run_generator
11
+
12
+ assert_file 'app/models/user.rb'
13
+ assert_file 'app/models/company.rb'
14
+ assert_file 'app/models/legacy_table.rb'
15
+ end
16
+
17
+ test "not create schema_migration.rb" do
18
+ run_generator
19
+
20
+ assert_no_file 'app/models/schema_migration.rb'
21
+ end
22
+
23
+ test "rails convension" do
24
+ run_generator
25
+
26
+ assert_file 'app/models/user.rb' do |content|
27
+ assert_match /class User < ActiveRecord::Base/, content
28
+ assert_match /end/, content
29
+ assert_no_match /self.table_name/, content
30
+ assert_no_match /self.primary_key/, content
31
+ end
32
+ end
33
+
34
+ test "table_name is not rails convension" do
35
+ run_generator
36
+
37
+ assert_file 'app/models/company.rb' do |content|
38
+ assert_match /class Company < ActiveRecord::Base/, content
39
+ assert_match /self.table_name = "company"/, content
40
+ assert_match /end/, content
41
+ assert_no_match /self.primary_key/, content
42
+ end
43
+ end
44
+
45
+ test "table_name and primary_key is not rails convension" do
46
+ run_generator
47
+
48
+ assert_file 'app/models/legacy_table.rb' do |content|
49
+ assert_match /class LegacyTable < ActiveRecord::Base/, content
50
+ assert_match /self.table_name = "legacy_table"/, content
51
+ assert_match /self.primary_key = "code"/, content
52
+ assert_match /end/, content
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,19 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
16
+
17
+ # For generators
18
+ require "rails/generators"
19
+ require "rails/generators/test_case"
@@ -0,0 +1,3 @@
1
+ class Company < ActiveRecord::Base
2
+ self.table_name = "company"
3
+ end
@@ -0,0 +1,4 @@
1
+ class LegacyTable < ActiveRecord::Base
2
+ self.table_name = "legacy_table"
3
+ self.primary_key = "code"
4
+ end
@@ -0,0 +1,2 @@
1
+ class User < ActiveRecord::Base
2
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: model_from_table
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Hidenori Maehara
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ModelFromTable is Rails generator for generating model from exsistent
56
+ tables
57
+ email:
58
+ - maeharin@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - MIT-LICENSE
64
+ - Rakefile
65
+ - lib/generators/model_from_table_generator.rb
66
+ - lib/generators/templates/model.rb
67
+ - lib/model_from_table.rb
68
+ - lib/model_from_table/version.rb
69
+ - lib/tasks/model_from_table_tasks.rake
70
+ - test/dummy/README.rdoc
71
+ - test/dummy/Rakefile
72
+ - test/dummy/app/assets/javascripts/application.js
73
+ - test/dummy/app/assets/stylesheets/application.css
74
+ - test/dummy/app/controllers/application_controller.rb
75
+ - test/dummy/app/helpers/application_helper.rb
76
+ - test/dummy/app/views/layouts/application.html.erb
77
+ - test/dummy/bin/bundle
78
+ - test/dummy/bin/rails
79
+ - test/dummy/bin/rake
80
+ - test/dummy/config.ru
81
+ - test/dummy/config/application.rb
82
+ - test/dummy/config/boot.rb
83
+ - test/dummy/config/database.yml
84
+ - test/dummy/config/environment.rb
85
+ - test/dummy/config/environments/development.rb
86
+ - test/dummy/config/environments/production.rb
87
+ - test/dummy/config/environments/test.rb
88
+ - test/dummy/config/initializers/assets.rb
89
+ - test/dummy/config/initializers/backtrace_silencers.rb
90
+ - test/dummy/config/initializers/cookies_serializer.rb
91
+ - test/dummy/config/initializers/filter_parameter_logging.rb
92
+ - test/dummy/config/initializers/inflections.rb
93
+ - test/dummy/config/initializers/mime_types.rb
94
+ - test/dummy/config/initializers/session_store.rb
95
+ - test/dummy/config/initializers/wrap_parameters.rb
96
+ - test/dummy/config/locales/en.yml
97
+ - test/dummy/config/routes.rb
98
+ - test/dummy/config/secrets.yml
99
+ - test/dummy/db/development.sqlite3
100
+ - test/dummy/db/migrate/20140728150510_create_tables.rb
101
+ - test/dummy/db/schema.rb
102
+ - test/dummy/db/test.sqlite3
103
+ - test/dummy/log/development.log
104
+ - test/dummy/log/test.log
105
+ - test/dummy/public/404.html
106
+ - test/dummy/public/422.html
107
+ - test/dummy/public/500.html
108
+ - test/dummy/public/favicon.ico
109
+ - test/model_from_table_generator_test.rb
110
+ - test/test_helper.rb
111
+ - test/tmp/app/models/company.rb
112
+ - test/tmp/app/models/legacy_table.rb
113
+ - test/tmp/app/models/user.rb
114
+ homepage: http://d.hatena.ne.jp/maeharin/
115
+ licenses:
116
+ - MIT
117
+ metadata: {}
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 2.2.2
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Rails generator for generating model from exsistent tables
138
+ test_files:
139
+ - test/dummy/app/assets/javascripts/application.js
140
+ - test/dummy/app/assets/stylesheets/application.css
141
+ - test/dummy/app/controllers/application_controller.rb
142
+ - test/dummy/app/helpers/application_helper.rb
143
+ - test/dummy/app/views/layouts/application.html.erb
144
+ - test/dummy/bin/bundle
145
+ - test/dummy/bin/rails
146
+ - test/dummy/bin/rake
147
+ - test/dummy/config/application.rb
148
+ - test/dummy/config/boot.rb
149
+ - test/dummy/config/database.yml
150
+ - test/dummy/config/environment.rb
151
+ - test/dummy/config/environments/development.rb
152
+ - test/dummy/config/environments/production.rb
153
+ - test/dummy/config/environments/test.rb
154
+ - test/dummy/config/initializers/assets.rb
155
+ - test/dummy/config/initializers/backtrace_silencers.rb
156
+ - test/dummy/config/initializers/cookies_serializer.rb
157
+ - test/dummy/config/initializers/filter_parameter_logging.rb
158
+ - test/dummy/config/initializers/inflections.rb
159
+ - test/dummy/config/initializers/mime_types.rb
160
+ - test/dummy/config/initializers/session_store.rb
161
+ - test/dummy/config/initializers/wrap_parameters.rb
162
+ - test/dummy/config/locales/en.yml
163
+ - test/dummy/config/routes.rb
164
+ - test/dummy/config/secrets.yml
165
+ - test/dummy/config.ru
166
+ - test/dummy/db/development.sqlite3
167
+ - test/dummy/db/migrate/20140728150510_create_tables.rb
168
+ - test/dummy/db/schema.rb
169
+ - test/dummy/db/test.sqlite3
170
+ - test/dummy/log/development.log
171
+ - test/dummy/log/test.log
172
+ - test/dummy/public/404.html
173
+ - test/dummy/public/422.html
174
+ - test/dummy/public/500.html
175
+ - test/dummy/public/favicon.ico
176
+ - test/dummy/Rakefile
177
+ - test/dummy/README.rdoc
178
+ - test/model_from_table_generator_test.rb
179
+ - test/test_helper.rb
180
+ - test/tmp/app/models/company.rb
181
+ - test/tmp/app/models/legacy_table.rb
182
+ - test/tmp/app/models/user.rb