schema_plus 2.0.0.pre2 → 2.0.0.pre3

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/Gemfile +2 -0
  4. data/README.md +4 -4
  5. data/TODO.md +3 -10
  6. data/gemfiles/{rails-4.2 → activerecord-4.2}/Gemfile.base +1 -1
  7. data/gemfiles/{rails-4.2 → activerecord-4.2}/Gemfile.mysql2 +0 -0
  8. data/gemfiles/{rails-4.2 → activerecord-4.2}/Gemfile.postgresql +0 -0
  9. data/gemfiles/{rails-4.2 → activerecord-4.2}/Gemfile.sqlite3 +0 -0
  10. data/lib/schema_plus.rb +13 -121
  11. data/lib/schema_plus/version.rb +1 -1
  12. data/lib/schema_plus_columns.rb +7 -0
  13. data/lib/{schema_column_plus → schema_plus_columns}/active_record/connection_adapters/column.rb +1 -1
  14. data/lib/schema_plus_columns/middleware/model.rb +16 -0
  15. data/lib/schema_plus_db_default.rb +13 -0
  16. data/lib/{schema_db_default → schema_plus_db_default}/active_record/attribute.rb +4 -4
  17. data/lib/{schema_db_default → schema_plus_db_default}/db_default.rb +1 -1
  18. data/lib/schema_plus_db_default/middleware.rb +30 -0
  19. data/lib/{schema_default_expr.rb → schema_plus_default_expr.rb} +6 -6
  20. data/lib/{schema_default_expr → schema_plus_default_expr}/active_record/connection_adapters/mysql2_adapter.rb +1 -1
  21. data/lib/{schema_default_expr → schema_plus_default_expr}/active_record/connection_adapters/postgresql_adapter.rb +1 -1
  22. data/lib/{schema_default_expr → schema_plus_default_expr}/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  23. data/lib/{schema_default_expr → schema_plus_default_expr}/middleware.rb +21 -19
  24. data/lib/schema_plus_enums.rb +6 -0
  25. data/lib/{schema_pg_enums → schema_plus_enums}/active_record.rb +1 -1
  26. data/lib/schema_plus_enums/middleware.rb +22 -0
  27. data/lib/schema_plus_foreign_keys.rb +96 -0
  28. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/base.rb +2 -2
  29. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/abstract_adapter.rb +7 -7
  30. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/foreign_key_definition.rb +4 -4
  31. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/mysql2_adapter.rb +9 -9
  32. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/postgresql_adapter.rb +5 -5
  33. data/lib/schema_plus_foreign_keys/active_record/connection_adapters/schema_statements.rb +33 -0
  34. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/sqlite3_adapter.rb +5 -5
  35. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/connection_adapters/table_definition.rb +8 -8
  36. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/migration/command_recorder.rb +5 -5
  37. data/lib/{schema_plus → schema_plus_foreign_keys}/active_record/schema.rb +7 -7
  38. data/lib/{schema_plus → schema_plus_foreign_keys}/middleware/dumper.rb +11 -26
  39. data/lib/{schema_plus → schema_plus_foreign_keys}/middleware/migration.rb +14 -15
  40. data/lib/schema_plus_foreign_keys/middleware/model.rb +15 -0
  41. data/lib/schema_plus_foreign_keys/version.rb +3 -0
  42. data/lib/schema_plus_views.rb +16 -0
  43. data/lib/{schema_views → schema_plus_views}/active_record/connection_adapters/abstract_adapter.rb +1 -1
  44. data/lib/{schema_views → schema_plus_views}/active_record/connection_adapters/mysql2_adapter.rb +1 -1
  45. data/lib/{schema_views → schema_plus_views}/active_record/connection_adapters/postgresql_adapter.rb +1 -1
  46. data/lib/{schema_views → schema_plus_views}/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  47. data/lib/schema_plus_views/middleware.rb +49 -0
  48. data/schema_dev.yml +1 -1
  49. data/schema_plus.gemspec +3 -2
  50. data/spec/{schema_column_plus → schema_plus_columns}/column_spec.rb +0 -0
  51. data/spec/{schema_db_default → schema_plus_db_default}/column_spec.rb +1 -1
  52. data/spec/{schema_default_expr → schema_plus_default_expr}/column_default_spec.rb +0 -0
  53. data/spec/schema_plus_default_expr/migration_spec.rb +44 -0
  54. data/spec/{schema_default_expr → schema_plus_default_expr}/schema_dumper_spec.rb +2 -2
  55. data/spec/{schema_pg_enums → schema_plus_enums}/enum_spec.rb +0 -0
  56. data/spec/{schema_pg_enums → schema_plus_enums}/schema_dumper_spec.rb +0 -0
  57. data/spec/{foreign_key_definition_spec.rb → schema_plus_foreign_keys/foreign_key_definition_spec.rb} +0 -0
  58. data/spec/{foreign_key_spec.rb → schema_plus_foreign_keys/foreign_key_spec.rb} +2 -2
  59. data/spec/{migration_spec.rb → schema_plus_foreign_keys/migration_spec.rb} +13 -29
  60. data/spec/{named_schemas_spec.rb → schema_plus_foreign_keys/named_schemas_spec.rb} +0 -0
  61. data/spec/{schema_dumper_spec.rb → schema_plus_foreign_keys/schema_dumper_spec.rb} +2 -2
  62. data/spec/{schema_spec.rb → schema_plus_foreign_keys/schema_spec.rb} +7 -7
  63. data/spec/{schema_views → schema_plus_views}/named_schemas_spec.rb +7 -7
  64. data/spec/{schema_views → schema_plus_views}/views_spec.rb +0 -0
  65. data/spec/spec_helper.rb +3 -3
  66. metadata +102 -81
  67. data/init.rb +0 -1
  68. data/lib/schema_column_plus.rb +0 -7
  69. data/lib/schema_column_plus/middleware/model.rb +0 -22
  70. data/lib/schema_db_default.rb +0 -13
  71. data/lib/schema_db_default/middleware.rb +0 -30
  72. data/lib/schema_pg_enums.rb +0 -6
  73. data/lib/schema_pg_enums/middleware.rb +0 -23
  74. data/lib/schema_plus/active_record/connection_adapters/schema_statements.rb +0 -34
  75. data/lib/schema_plus/middleware/model.rb +0 -17
  76. data/lib/schema_views.rb +0 -16
  77. data/lib/schema_views/middleware.rb +0 -47
  78. data/spec/connection_spec.rb +0 -10
@@ -1,23 +0,0 @@
1
- module SchemaPgEnums
2
- module Middleware
3
- module Postgresql
4
- def self.insert
5
- SchemaMonkey::Middleware::Dumper::Extensions.append CreateEnums
6
- end
7
-
8
- class CreateEnums < SchemaMonkey::Middleware::Base
9
- def call(env)
10
- continue env
11
-
12
- env.connection.enums.each do |schema, name, values|
13
- params = [name.inspect]
14
- params << values.map(&:inspect).join(', ')
15
- params << ":schema => #{schema.inspect}" if schema != 'public'
16
-
17
- env.extensions << "create_enum #{params.join(', ')}"
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,34 +0,0 @@
1
- module SchemaPlus::ActiveRecord::ConnectionAdapters
2
- module SchemaStatements
3
-
4
- def self.included(base) #:nodoc:
5
- base.class_eval do
6
- alias_method_chain :create_table, :schema_plus
7
- end
8
- end
9
-
10
- ##
11
- # :method: create_table
12
- #
13
- # SchemaPlus extends SchemaStatements::create_table to allow you to specify configuration options per table. Pass them in as a hash keyed by configuration set (see SchemaPlus::Config),
14
- # for example:
15
- #
16
- # create_table :widgets, :foreign_keys => {:auto_create => true, :on_delete => :cascade} do |t|
17
- # ...
18
- # end
19
- def create_table_with_schema_plus(table, options = {})
20
- options = options.dup
21
- config_options = {}
22
- options.keys.each { |key| config_options[key] = options.delete(key) if SchemaPlus.config.class.attributes.include? key }
23
-
24
- # override rails' :force to cascade
25
- drop_table(table, if_exists: true, cascade: true) if options.delete(:force)
26
-
27
- create_table_without_schema_plus(table, options) do |table_definition|
28
- table_definition.schema_plus_config = SchemaPlus.config.merge(config_options)
29
- yield table_definition if block_given?
30
- end
31
- end
32
- end
33
-
34
- end
@@ -1,17 +0,0 @@
1
- module SchemaPlus
2
- module Middleware
3
- module Model
4
-
5
- def self.insert
6
- SchemaMonkey::Middleware::Model::ResetColumnInformation.append ResetColumnInformation
7
- end
8
-
9
- class ResetColumnInformation < SchemaMonkey::Middleware::Base
10
- def call(env)
11
- continue env
12
- env.model.reset_foreign_key_information
13
- end
14
- end
15
- end
16
- end
17
- end
data/lib/schema_views.rb DELETED
@@ -1,16 +0,0 @@
1
- require 'schema_monkey'
2
-
3
- require_relative 'schema_views/active_record/connection_adapters/abstract_adapter'
4
- require_relative 'schema_views/middleware'
5
-
6
- module SchemaViews
7
- module ActiveRecord
8
- module ConnectionAdapters
9
- autoload :Mysql2Adapter, 'schema_views/active_record/connection_adapters/mysql2_adapter'
10
- autoload :PostgresqlAdapter, 'schema_views/active_record/connection_adapters/postgresql_adapter'
11
- autoload :Sqlite3Adapter, 'schema_views/active_record/connection_adapters/sqlite3_adapter'
12
- end
13
- end
14
- end
15
-
16
- SchemaMonkey.register(SchemaViews)
@@ -1,47 +0,0 @@
1
- module SchemaViews
2
- module Middleware
3
- def self.insert
4
- SchemaMonkey::Middleware::Dumper::Tables.prepend DumpViews
5
- end
6
- module Mysql
7
- def self.insert
8
- SchemaMonkey::Middleware::Query::Tables.append FilterOutViews
9
- end
10
- end
11
- module Sqlite3
12
- def self.insert
13
- SchemaMonkey::Middleware::Query::Tables.append FilterOutViews
14
- end
15
- end
16
- end
17
-
18
- class FilterOutViews < SchemaMonkey::Middleware::Base
19
- def call(env)
20
- continue env
21
- env.tables -= env.connection.views(env.query_name)
22
- end
23
- end
24
-
25
- class DumpViews < SchemaMonkey::Middleware::Base
26
-
27
- # quacks like a SchemaMonkey Dump::Table
28
- class View < KeyStruct[:name, :definition]
29
- def assemble(stream)
30
- stream.puts(" create_view #{name.inspect}, #{definition.inspect}, :force => true\n")
31
- end
32
- end
33
-
34
- def call(env)
35
- continue env
36
-
37
- re_view_referent = %r{(?:(?i)FROM|JOIN) \S*\b(\S+)\b}
38
- env.connection.views.each do |view_name|
39
- next if env.dumper.ignored?(view_name)
40
- view = View.new(name: view_name, definition: env.connection.view_definition(view_name))
41
- env.dump.tables[view.name] = view
42
- env.dump.depends(view.name, view.definition.scan(re_view_referent).flatten)
43
- end
44
- end
45
-
46
- end
47
- end
@@ -1,10 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "Connection" do
4
-
5
- it "should re-open without failure" do
6
- expect {
7
- ActiveRecord::Base.establish_connection :schema_dev
8
- }.to_not raise_error
9
- end
10
- end