legacy_data 0.1.8 → 0.1.9

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 (112) hide show
  1. data/Rakefile +37 -1
  2. data/VERSION +1 -1
  3. data/examples/blog_migration.rb +26 -0
  4. data/examples/create_j2ee_petstore.sql +91 -0
  5. data/examples/delete_j2ee_petstore.sql +14 -0
  6. data/examples/drupal_6_14.sql +809 -0
  7. data/examples/generated/blog_mysql/comment.rb +11 -0
  8. data/examples/generated/blog_mysql/factories.rb +9 -0
  9. data/examples/generated/blog_mysql/post.rb +11 -0
  10. data/examples/generated/blog_mysql/tag.rb +11 -0
  11. data/{spec/functional/expected → examples/generated/blog_sqlite3}/comment.rb +3 -4
  12. data/examples/generated/blog_sqlite3/factories.rb +12 -0
  13. data/{spec/functional/expected → examples/generated/blog_sqlite3}/post.rb +3 -3
  14. data/examples/generated/blog_sqlite3/tag.rb +11 -0
  15. data/examples/generated/drupal_mysql/access.rb +12 -0
  16. data/examples/generated/drupal_mysql/action.rb +11 -0
  17. data/examples/generated/drupal_mysql/actions_aid.rb +11 -0
  18. data/examples/generated/drupal_mysql/authmap.rb +13 -0
  19. data/examples/generated/drupal_mysql/batch.rb +12 -0
  20. data/examples/generated/drupal_mysql/block.rb +13 -0
  21. data/examples/generated/drupal_mysql/blocks_role.rb +12 -0
  22. data/examples/generated/drupal_mysql/box.rb +13 -0
  23. data/examples/generated/drupal_mysql/cache.rb +12 -0
  24. data/examples/generated/drupal_mysql/cache_block.rb +12 -0
  25. data/examples/generated/drupal_mysql/cache_filter.rb +12 -0
  26. data/examples/generated/drupal_mysql/cache_form.rb +12 -0
  27. data/examples/generated/drupal_mysql/cache_menu.rb +12 -0
  28. data/examples/generated/drupal_mysql/cache_page.rb +12 -0
  29. data/examples/generated/drupal_mysql/cache_update.rb +12 -0
  30. data/examples/generated/drupal_mysql/comment.rb +12 -0
  31. data/examples/generated/drupal_mysql/factories.rb +370 -0
  32. data/examples/generated/drupal_mysql/filter.rb +13 -0
  33. data/examples/generated/drupal_mysql/filter_format.rb +13 -0
  34. data/examples/generated/drupal_mysql/flood.rb +12 -0
  35. data/examples/generated/drupal_mysql/history.rb +12 -0
  36. data/examples/generated/drupal_mysql/menu_custom.rb +11 -0
  37. data/examples/generated/drupal_mysql/menu_link.rb +12 -0
  38. data/examples/generated/drupal_mysql/menu_router.rb +12 -0
  39. data/examples/generated/drupal_mysql/node.rb +13 -0
  40. data/examples/generated/drupal_mysql/node_access.rb +12 -0
  41. data/examples/generated/drupal_mysql/node_comment_statistic.rb +12 -0
  42. data/examples/generated/drupal_mysql/node_counter.rb +12 -0
  43. data/examples/generated/drupal_mysql/node_revision.rb +12 -0
  44. data/examples/generated/drupal_mysql/node_type.rb +12 -0
  45. data/examples/generated/drupal_mysql/permission.rb +12 -0
  46. data/examples/generated/drupal_mysql/role.rb +12 -0
  47. data/examples/generated/drupal_mysql/session.rb +12 -0
  48. data/examples/generated/drupal_mysql/system.rb +12 -0
  49. data/examples/generated/drupal_mysql/term_data.rb +12 -0
  50. data/examples/generated/drupal_mysql/term_hierarchy.rb +12 -0
  51. data/examples/generated/drupal_mysql/term_node.rb +12 -0
  52. data/examples/generated/drupal_mysql/term_relation.rb +13 -0
  53. data/examples/generated/drupal_mysql/term_synonym.rb +12 -0
  54. data/examples/generated/drupal_mysql/uploaded_files.rb +12 -0
  55. data/examples/generated/drupal_mysql/url_alias.rb +12 -0
  56. data/examples/generated/drupal_mysql/user.rb +14 -0
  57. data/examples/generated/drupal_mysql/users_role.rb +12 -0
  58. data/examples/generated/drupal_mysql/variable.rb +11 -0
  59. data/examples/generated/drupal_mysql/vocabulary.rb +12 -0
  60. data/examples/generated/drupal_mysql/vocabulary_node_type.rb +12 -0
  61. data/examples/generated/drupal_mysql/watchdog.rb +12 -0
  62. data/examples/generated/j2ee_petstore_mysql/address.rb +11 -0
  63. data/examples/generated/j2ee_petstore_mysql/category.rb +11 -0
  64. data/examples/generated/j2ee_petstore_mysql/factories.rb +57 -0
  65. data/examples/generated/j2ee_petstore_mysql/id_gen.rb +12 -0
  66. data/examples/generated/j2ee_petstore_mysql/item.rb +12 -0
  67. data/examples/generated/j2ee_petstore_mysql/product.rb +11 -0
  68. data/examples/generated/j2ee_petstore_mysql/seller_contact_info.rb +11 -0
  69. data/examples/generated/j2ee_petstore_mysql/tag.rb +13 -0
  70. data/examples/generated/j2ee_petstore_mysql/tag_item.rb +13 -0
  71. data/examples/generated/j2ee_petstore_mysql/ziplocation.rb +11 -0
  72. data/examples/generated/j2ee_petstore_oracle/address.rb +11 -0
  73. data/examples/generated/j2ee_petstore_oracle/category.rb +11 -0
  74. data/examples/generated/j2ee_petstore_oracle/factories.rb +52 -0
  75. data/examples/generated/j2ee_petstore_oracle/id_gen.rb +12 -0
  76. data/examples/generated/j2ee_petstore_oracle/item.rb +15 -0
  77. data/examples/generated/j2ee_petstore_oracle/product.rb +12 -0
  78. data/examples/generated/j2ee_petstore_oracle/sellercontactinfo.rb +11 -0
  79. data/examples/generated/j2ee_petstore_oracle/tag.rb +13 -0
  80. data/examples/generated/j2ee_petstore_oracle/ziplocation.rb +11 -0
  81. data/examples/generated/j2ee_petstore_sqlite3/address.rb +12 -0
  82. data/examples/generated/j2ee_petstore_sqlite3/category.rb +12 -0
  83. data/examples/generated/j2ee_petstore_sqlite3/factories.rb +57 -0
  84. data/examples/generated/j2ee_petstore_sqlite3/id_gen.rb +13 -0
  85. data/examples/generated/j2ee_petstore_sqlite3/item.rb +13 -0
  86. data/examples/generated/j2ee_petstore_sqlite3/product.rb +12 -0
  87. data/examples/generated/j2ee_petstore_sqlite3/seller_contact_info.rb +12 -0
  88. data/examples/generated/j2ee_petstore_sqlite3/tag.rb +13 -0
  89. data/examples/generated/j2ee_petstore_sqlite3/tag_item.rb +14 -0
  90. data/examples/generated/j2ee_petstore_sqlite3/ziplocation.rb +11 -0
  91. data/generators/models_from_tables/models_from_tables_generator.rb +5 -36
  92. data/generators/models_from_tables/templates/model.rb +5 -39
  93. data/legacy_data.gemspec +187 -11
  94. data/lib/active_record/connection_adapters/oracleenhanced_adapter.rb +85 -0
  95. data/lib/legacy_data.rb +5 -2
  96. data/lib/legacy_data/schema.rb +10 -7
  97. data/lib/legacy_data/table_class_name_mapper.rb +1 -1
  98. data/lib/legacy_data/table_definition.rb +120 -5
  99. data/spec/expected/post.rb +3 -3
  100. data/spec/functional/blog_adapterspec.rb +45 -0
  101. data/spec/functional/database.yml +45 -0
  102. data/spec/functional/drupal_adapterspec.rb +54 -0
  103. data/spec/functional/functional_spec_helper.rb +24 -0
  104. data/spec/functional/j2ee_petstore_adapterspec.rb +57 -0
  105. data/spec/legacy_data/schema_spec.rb +7 -3
  106. data/spec/legacy_data/table_definition_spec.rb +101 -10
  107. data/spec/models_from_tables_generator_spec.rb +19 -7
  108. data/spec/spec_helper.rb +6 -18
  109. metadata +193 -10
  110. data/examples/j2ee_petstore.sql +0 -512
  111. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +0 -61
  112. data/spec/functional/models_from_tables_spec.rb +0 -27
@@ -1,61 +0,0 @@
1
- module OracleEnhancedAdapterConstraintsMethods
2
-
3
- def foreign_keys_for(table_name)
4
- (owner, table_name) = @connection.describe(table_name)
5
-
6
- # RSI: changed select from all_constraints to user_constraints - much faster in large data dictionaries
7
- fks = select_rows(<<-SQL, 'Foreign Keys')
8
- select parent_c.table_name, cc.column_name
9
- from user_constraints c, user_constraints parent_c, user_cons_columns cc
10
- where c.owner = '#{owner}'
11
- and c.table_name = '#{table_name}'
12
- and c.r_constraint_name = parent_c.constraint_name
13
- and c.constraint_type = 'R'
14
- and cc.owner = c.owner
15
- and cc.constraint_name = c.constraint_name
16
- SQL
17
- end
18
- def foreign_keys_of(table_name)
19
- (owner, table_name) = @connection.describe(table_name)
20
-
21
- # RSI: changed select from all_constraints to user_constraints - much faster in large data dictionaries
22
- fks = select_rows(<<-SQL, 'Remote Foriegn Keys')
23
- select c.table_name, cc.column_name, c.delete_rule
24
- from user_constraints c, user_constraints parent_c, user_cons_columns cc
25
- where c.owner = '#{owner}'
26
- and parent_c.table_name = '#{table_name}'
27
- and c.r_constraint_name = parent_c.constraint_name
28
- and c.constraint_type = 'R'
29
- and cc.owner = c.owner
30
- and cc.constraint_name = c.constraint_name
31
- SQL
32
- fks.map do |row|
33
- dependent = case row[2]
34
- when 'CASCADE'
35
- :destroy
36
- when 'SET NULL'
37
- :nullify
38
- end
39
- options = {:to_table => row[0].downcase, :foreign_key =>row[1].downcase.to_sym }
40
- options[:dependent] = dependent unless dependent.nil?
41
- options
42
- end
43
- end
44
-
45
- def constraints(table_name)
46
- (owner, table_name) = @connection.describe(table_name)
47
-
48
- # RSI: changed select from all_constraints to user_constraints - much faster in large data dictionaries
49
- fks = select_rows(<<-SQL, 'User Contraints')
50
- select c.constraint_name, c.search_condition
51
- from user_constraints c
52
- where c.owner = '#{owner}'
53
- and c.table_name = '#{table_name}'
54
- and c.constraint_type = 'C'
55
- and c.generated = 'USER NAME'
56
- and c.status = 'ENABLED'
57
- SQL
58
- end
59
- end
60
-
61
- ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.send(:include, OracleEnhancedAdapterConstraintsMethods) if defined? ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter
@@ -1,27 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/functional_spec_helper')
2
-
3
- describe 'Models From Tables generator' do
4
- before :all do
5
- silence_warnings { RAILS_ROOT = File.expand_path(File.dirname(__FILE__) + '/../../output/functional') }
6
- FileUtils.mkdir_p(RAILS_ROOT + '/app/models')
7
- FileUtils.mkdir_p(RAILS_ROOT + '/spec')
8
-
9
- LegacyData::Schema.stub!(:log)
10
- end
11
- after :all do
12
- Object.send(:remove_const, :RAILS_ROOT)
13
- end
14
-
15
- it 'should generate a posts model' do
16
- invoke_generator('models_from_tables', ["--table-name", "posts"], :create)
17
-
18
- File.read(RAILS_ROOT + '/app/models/post.rb').should == File.read(File.expand_path(File.dirname(__FILE__) + '/expected/post.rb'))
19
- end
20
-
21
- it 'should generate all models in database' do
22
- invoke_generator('models_from_tables', [], :create)
23
-
24
- File.read(RAILS_ROOT + '/app/models/post.rb').should == File.read(File.expand_path(File.dirname(__FILE__) + '/expected/post.rb'))
25
- File.read(RAILS_ROOT + '/app/models/comment.rb').should == File.read(File.expand_path(File.dirname(__FILE__) + '/expected/comment.rb'))
26
- end
27
- end