rom-sql 3.0.1 → 3.3.2

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +428 -297
  3. data/LICENSE +20 -0
  4. data/README.md +14 -56
  5. data/lib/rom-sql.rb +2 -0
  6. data/lib/rom/plugins/relation/sql/auto_restrictions.rb +2 -0
  7. data/lib/rom/plugins/relation/sql/instrumentation.rb +2 -0
  8. data/lib/rom/plugins/relation/sql/postgres/explain.rb +6 -7
  9. data/lib/rom/plugins/relation/sql/postgres/full_text_search.rb +53 -0
  10. data/lib/rom/plugins/relation/sql/postgres/streaming.rb +97 -0
  11. data/lib/rom/sql.rb +2 -0
  12. data/lib/rom/sql/associations.rb +2 -0
  13. data/lib/rom/sql/associations/core.rb +10 -0
  14. data/lib/rom/sql/associations/many_to_many.rb +3 -1
  15. data/lib/rom/sql/associations/many_to_one.rb +2 -0
  16. data/lib/rom/sql/associations/one_to_many.rb +2 -0
  17. data/lib/rom/sql/associations/one_to_one.rb +2 -0
  18. data/lib/rom/sql/associations/one_to_one_through.rb +2 -0
  19. data/lib/rom/sql/associations/self_ref.rb +2 -0
  20. data/lib/rom/sql/attribute.rb +31 -22
  21. data/lib/rom/sql/attribute_aliasing.rb +88 -0
  22. data/lib/rom/sql/attribute_wrapping.rb +30 -0
  23. data/lib/rom/sql/commands.rb +2 -0
  24. data/lib/rom/sql/commands/create.rb +2 -0
  25. data/lib/rom/sql/commands/delete.rb +2 -0
  26. data/lib/rom/sql/commands/error_wrapper.rb +2 -0
  27. data/lib/rom/sql/commands/update.rb +2 -0
  28. data/lib/rom/sql/dsl.rb +11 -3
  29. data/lib/rom/sql/error.rb +2 -0
  30. data/lib/rom/sql/errors.rb +2 -0
  31. data/lib/rom/sql/extensions.rb +2 -0
  32. data/lib/rom/sql/extensions/active_support_notifications.rb +2 -0
  33. data/lib/rom/sql/extensions/mysql.rb +2 -0
  34. data/lib/rom/sql/extensions/mysql/type_builder.rb +2 -0
  35. data/lib/rom/sql/extensions/postgres.rb +3 -0
  36. data/lib/rom/sql/extensions/postgres/commands.rb +3 -1
  37. data/lib/rom/sql/extensions/postgres/type_builder.rb +6 -4
  38. data/lib/rom/sql/extensions/postgres/type_serializer.rb +2 -0
  39. data/lib/rom/sql/extensions/postgres/types.rb +2 -0
  40. data/lib/rom/sql/extensions/postgres/types/array.rb +7 -6
  41. data/lib/rom/sql/extensions/postgres/types/array_types.rb +3 -1
  42. data/lib/rom/sql/extensions/postgres/types/geometric.rb +2 -0
  43. data/lib/rom/sql/extensions/postgres/types/json.rb +76 -19
  44. data/lib/rom/sql/extensions/postgres/types/ltree.rb +25 -23
  45. data/lib/rom/sql/extensions/postgres/types/network.rb +2 -0
  46. data/lib/rom/sql/extensions/postgres/types/range.rb +2 -0
  47. data/lib/rom/sql/extensions/rails_log_subscriber.rb +2 -0
  48. data/lib/rom/sql/extensions/sqlite.rb +2 -0
  49. data/lib/rom/sql/extensions/sqlite/type_builder.rb +2 -0
  50. data/lib/rom/sql/extensions/sqlite/types.rb +2 -0
  51. data/lib/rom/sql/foreign_key.rb +3 -1
  52. data/lib/rom/sql/function.rb +38 -6
  53. data/lib/rom/sql/gateway.rb +9 -1
  54. data/lib/rom/sql/group_dsl.rb +2 -0
  55. data/lib/rom/sql/index.rb +2 -0
  56. data/lib/rom/sql/join_dsl.rb +2 -0
  57. data/lib/rom/sql/mapper_compiler.rb +12 -1
  58. data/lib/rom/sql/migration.rb +5 -3
  59. data/lib/rom/sql/migration/inline_runner.rb +2 -0
  60. data/lib/rom/sql/migration/migrator.rb +4 -2
  61. data/lib/rom/sql/migration/recorder.rb +2 -0
  62. data/lib/rom/sql/migration/runner.rb +4 -2
  63. data/lib/rom/sql/migration/schema_diff.rb +2 -0
  64. data/lib/rom/sql/migration/template.rb +2 -0
  65. data/lib/rom/sql/migration/writer.rb +12 -4
  66. data/lib/rom/sql/order_dsl.rb +2 -0
  67. data/lib/rom/sql/plugin/associates.rb +4 -2
  68. data/lib/rom/sql/plugin/nullify.rb +37 -0
  69. data/lib/rom/sql/plugin/pagination.rb +2 -0
  70. data/lib/rom/sql/plugins.rb +4 -0
  71. data/lib/rom/sql/projection_dsl.rb +3 -1
  72. data/lib/rom/sql/rake_task.rb +2 -0
  73. data/lib/rom/sql/relation.rb +3 -1
  74. data/lib/rom/sql/relation/reading.rb +32 -6
  75. data/lib/rom/sql/relation/writing.rb +2 -0
  76. data/lib/rom/sql/restriction_dsl.rb +9 -1
  77. data/lib/rom/sql/schema.rb +16 -2
  78. data/lib/rom/sql/schema/attributes_inferrer.rb +5 -3
  79. data/lib/rom/sql/schema/dsl.rb +3 -1
  80. data/lib/rom/sql/schema/index_dsl.rb +5 -2
  81. data/lib/rom/sql/schema/inferrer.rb +12 -8
  82. data/lib/rom/sql/schema/type_builder.rb +4 -2
  83. data/lib/rom/sql/spec/support.rb +5 -3
  84. data/lib/rom/sql/tasks/migration_tasks.rake +16 -11
  85. data/lib/rom/sql/transaction.rb +2 -0
  86. data/lib/rom/sql/type_dsl.rb +2 -0
  87. data/lib/rom/sql/type_extensions.rb +4 -4
  88. data/lib/rom/sql/type_serializer.rb +2 -0
  89. data/lib/rom/sql/types.rb +2 -0
  90. data/lib/rom/sql/version.rb +3 -1
  91. data/lib/rom/sql/wrap.rb +2 -0
  92. data/lib/rom/types/values.rb +2 -0
  93. metadata +34 -32
@@ -1,5 +1,7 @@
1
- require "pathname"
2
- require "fileutils"
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ require 'fileutils'
3
5
 
4
6
  module ROM
5
7
  module SQL
@@ -27,7 +29,10 @@ module ROM
27
29
  def gateway
28
30
  if env.nil?
29
31
  Gateway.instance ||
30
- raise(MissingEnv, "Set up a configuration with ROM::SQL::RakeSupport.env= in the db:setup task")
32
+ raise(
33
+ MissingEnv,
34
+ 'Set up a configuration with ROM::SQL::RakeSupport.env= in the db:setup task'
35
+ )
31
36
  else
32
37
  env.gateways[:default]
33
38
  end
@@ -41,36 +46,36 @@ end
41
46
 
42
47
  namespace :db do
43
48
  task :rom_configuration do
44
- Rake::Task["db:setup"].invoke
49
+ Rake::Task['db:setup'].invoke
45
50
  end
46
51
 
47
- desc "Perform migration reset (full erase and migration up)"
52
+ desc 'Perform migration reset (full erase and migration up)'
48
53
  task reset: :rom_configuration do
49
54
  ROM::SQL::RakeSupport.run_migrations(target: 0)
50
55
  ROM::SQL::RakeSupport.run_migrations
51
- puts "<= db:reset executed"
56
+ puts '<= db:reset executed'
52
57
  end
53
58
 
54
- desc "Migrate the database (options [version_number])]"
59
+ desc 'Migrate the database (options [version_number])]'
55
60
  task :migrate, [:version] => :rom_configuration do |_, args|
56
61
  version = args[:version]
57
62
 
58
63
  if version.nil?
59
64
  ROM::SQL::RakeSupport.run_migrations
60
- puts "<= db:migrate executed"
65
+ puts '<= db:migrate executed'
61
66
  else
62
67
  ROM::SQL::RakeSupport.run_migrations(target: version.to_i)
63
68
  puts "<= db:migrate version=[#{version}] executed"
64
69
  end
65
70
  end
66
71
 
67
- desc "Perform migration down (erase all data)"
72
+ desc 'Perform migration down (removes all tables)'
68
73
  task clean: :rom_configuration do
69
74
  ROM::SQL::RakeSupport.run_migrations(target: 0)
70
- puts "<= db:clean executed"
75
+ puts '<= db:clean executed'
71
76
  end
72
77
 
73
- desc "Create a migration (parameters: NAME, VERSION)"
78
+ desc 'Create a migration (parameters: NAME, VERSION)'
74
79
  task :create_migration, [:name, :version] => :rom_configuration do |_, args|
75
80
  name, version = args.values_at(:name, :version)
76
81
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # @api private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # Type DSL used by Types.define method
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # Type-specific methods
@@ -7,14 +9,12 @@ module ROM
7
9
  class << self
8
10
  # Gets extensions for a type
9
11
  #
10
- # @param [Dry::Types::Type] wrapped
12
+ # @param type [Dry::Types::Type] wrapped
11
13
  #
12
14
  # @return [Hash]
13
15
  #
14
16
  # @api public
15
- def [](wrapped)
16
- type = wrapped.default? ? wrapped.type : wrapped
17
- type = type.optional? ? type.right : type
17
+ def [](type)
18
18
  @types[type.meta[:database]][type.meta[:db_type]] || EMPTY_HASH
19
19
  end
20
20
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'dry/core/class_attributes'
2
4
 
3
5
  module ROM
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sequel/core'
2
4
  require 'sequel/sql'
3
5
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
- VERSION = '3.0.1'.freeze
5
+ VERSION = '3.3.2'.freeze
4
6
  end
5
7
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/relation/wrap'
2
4
 
3
5
  module ROM
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/sql/types'
2
4
 
3
5
  module ROM
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-05 00:00:00.000000000 Z
11
+ date: 2021-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.49'
27
- - !ruby/object:Gem::Dependency
28
- name: dry-equalizer
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.2'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.2'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: dry-types
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,34 +44,40 @@ dependencies:
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0.4'
47
+ version: '0.5'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0.5'
62
51
  type: :runtime
63
52
  prerelease: false
64
53
  version_requirements: !ruby/object:Gem::Requirement
65
54
  requirements:
66
55
  - - "~>"
67
56
  - !ruby/object:Gem::Version
68
- version: '0.4'
57
+ version: '0.5'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0.5'
69
61
  - !ruby/object:Gem::Dependency
70
- name: rom-core
62
+ name: rom
71
63
  requirement: !ruby/object:Gem::Requirement
72
64
  requirements:
73
65
  - - "~>"
74
66
  - !ruby/object:Gem::Version
75
- version: '5.0'
67
+ version: '5.2'
76
68
  - - ">="
77
69
  - !ruby/object:Gem::Version
78
- version: 5.0.1
70
+ version: 5.2.1
79
71
  type: :runtime
80
72
  prerelease: false
81
73
  version_requirements: !ruby/object:Gem::Requirement
82
74
  requirements:
83
75
  - - "~>"
84
76
  - !ruby/object:Gem::Version
85
- version: '5.0'
77
+ version: '5.2'
86
78
  - - ">="
87
79
  - !ruby/object:Gem::Version
88
- version: 5.0.1
80
+ version: 5.2.1
89
81
  - !ruby/object:Gem::Dependency
90
82
  name: bundler
91
83
  requirement: !ruby/object:Gem::Requirement
@@ -106,28 +98,28 @@ dependencies:
106
98
  requirements:
107
99
  - - "~>"
108
100
  - !ruby/object:Gem::Version
109
- version: '10.0'
101
+ version: '13.0'
110
102
  type: :development
111
103
  prerelease: false
112
104
  version_requirements: !ruby/object:Gem::Requirement
113
105
  requirements:
114
106
  - - "~>"
115
107
  - !ruby/object:Gem::Version
116
- version: '10.0'
108
+ version: '13.0'
117
109
  - !ruby/object:Gem::Dependency
118
110
  name: rspec
119
111
  requirement: !ruby/object:Gem::Requirement
120
112
  requirements:
121
113
  - - "~>"
122
114
  - !ruby/object:Gem::Version
123
- version: '3.5'
115
+ version: '3.9'
124
116
  type: :development
125
117
  prerelease: false
126
118
  version_requirements: !ruby/object:Gem::Requirement
127
119
  requirements:
128
120
  - - "~>"
129
121
  - !ruby/object:Gem::Version
130
- version: '3.5'
122
+ version: '3.9'
131
123
  description: SQL databases support for ROM
132
124
  email:
133
125
  - piotr.solnica@gmail.com
@@ -136,11 +128,14 @@ extensions: []
136
128
  extra_rdoc_files: []
137
129
  files:
138
130
  - CHANGELOG.md
131
+ - LICENSE
139
132
  - README.md
140
133
  - lib/rom-sql.rb
141
134
  - lib/rom/plugins/relation/sql/auto_restrictions.rb
142
135
  - lib/rom/plugins/relation/sql/instrumentation.rb
143
136
  - lib/rom/plugins/relation/sql/postgres/explain.rb
137
+ - lib/rom/plugins/relation/sql/postgres/full_text_search.rb
138
+ - lib/rom/plugins/relation/sql/postgres/streaming.rb
144
139
  - lib/rom/sql.rb
145
140
  - lib/rom/sql/associations.rb
146
141
  - lib/rom/sql/associations/core.rb
@@ -151,6 +146,8 @@ files:
151
146
  - lib/rom/sql/associations/one_to_one_through.rb
152
147
  - lib/rom/sql/associations/self_ref.rb
153
148
  - lib/rom/sql/attribute.rb
149
+ - lib/rom/sql/attribute_aliasing.rb
150
+ - lib/rom/sql/attribute_wrapping.rb
154
151
  - lib/rom/sql/commands.rb
155
152
  - lib/rom/sql/commands/create.rb
156
153
  - lib/rom/sql/commands/delete.rb
@@ -196,6 +193,7 @@ files:
196
193
  - lib/rom/sql/migration/writer.rb
197
194
  - lib/rom/sql/order_dsl.rb
198
195
  - lib/rom/sql/plugin/associates.rb
196
+ - lib/rom/sql/plugin/nullify.rb
199
197
  - lib/rom/sql/plugin/pagination.rb
200
198
  - lib/rom/sql/plugins.rb
201
199
  - lib/rom/sql/projection_dsl.rb
@@ -223,8 +221,12 @@ files:
223
221
  homepage: http://rom-rb.org
224
222
  licenses:
225
223
  - MIT
226
- metadata: {}
227
- post_install_message:
224
+ metadata:
225
+ source_code_uri: https://github.com/rom-rb/rom-sql
226
+ documentation_uri: https://api.rom-rb.org/rom-sql/
227
+ mailing_list_uri: https://discourse.rom-rb.org/
228
+ bug_tracker_uri: https://github.com/rom-rb/rom-sql/issues
229
+ post_install_message:
228
230
  rdoc_options: []
229
231
  require_paths:
230
232
  - lib
@@ -239,8 +241,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
241
  - !ruby/object:Gem::Version
240
242
  version: '0'
241
243
  requirements: []
242
- rubygems_version: 3.0.3
243
- signing_key:
244
+ rubygems_version: 3.2.3
245
+ signing_key:
244
246
  specification_version: 4
245
247
  summary: SQL databases support for ROM
246
248
  test_files: []