composite_primary_keys 11.3.1 → 12.0.0.rc1

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 +4 -4
  2. data/History.rdoc +17 -7
  3. data/README.rdoc +1 -0
  4. data/lib/composite_primary_keys.rb +1 -6
  5. data/lib/composite_primary_keys/arel/to_sql.rb +13 -13
  6. data/lib/composite_primary_keys/associations/association_scope.rb +4 -4
  7. data/lib/composite_primary_keys/associations/has_many_association.rb +2 -1
  8. data/lib/composite_primary_keys/associations/has_many_through_association.rb +0 -2
  9. data/lib/composite_primary_keys/associations/join_dependency.rb +9 -8
  10. data/lib/composite_primary_keys/associations/preloader/association.rb +28 -36
  11. data/lib/composite_primary_keys/attribute_methods.rb +2 -2
  12. data/lib/composite_primary_keys/attribute_methods/read.rb +11 -14
  13. data/lib/composite_primary_keys/attribute_methods/write.rb +8 -11
  14. data/lib/composite_primary_keys/base.rb +2 -2
  15. data/lib/composite_primary_keys/composite_arrays.rb +7 -50
  16. data/lib/composite_primary_keys/connection_adapters/abstract_adapter.rb +1 -1
  17. data/lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb +1 -1
  18. data/lib/composite_primary_keys/core.rb +10 -14
  19. data/lib/composite_primary_keys/counter_cache.rb +4 -22
  20. data/lib/composite_primary_keys/fixtures.rb +5 -10
  21. data/lib/composite_primary_keys/nested_attributes.rb +6 -6
  22. data/lib/composite_primary_keys/persistence.rb +8 -8
  23. data/lib/composite_primary_keys/reflection.rb +3 -3
  24. data/lib/composite_primary_keys/relation.rb +39 -27
  25. data/lib/composite_primary_keys/relation/calculations.rb +15 -18
  26. data/lib/composite_primary_keys/relation/finder_methods.rb +56 -58
  27. data/lib/composite_primary_keys/relation/query_methods.rb +4 -3
  28. data/lib/composite_primary_keys/relation/where_clause.rb +2 -2
  29. data/lib/composite_primary_keys/sanitization.rb +37 -37
  30. data/lib/composite_primary_keys/validations/uniqueness.rb +2 -2
  31. data/lib/composite_primary_keys/version.rb +4 -4
  32. data/tasks/databases/mysql.rake +1 -1
  33. data/test/abstract_unit.rb +1 -5
  34. data/test/connections/databases.ci.yml +3 -0
  35. data/test/db_test.rb +53 -0
  36. data/test/fixtures/db_definitions/mysql.sql +1 -7
  37. data/test/fixtures/db_definitions/oracle.drop.sql +1 -3
  38. data/test/fixtures/db_definitions/oracle.sql +0 -8
  39. data/test/fixtures/db_definitions/postgresql.sql +0 -6
  40. data/test/fixtures/db_definitions/sqlite.sql +0 -6
  41. data/test/fixtures/db_definitions/sqlserver.sql +1 -8
  42. data/test/test_associations.rb +1 -1
  43. data/test/test_composite_arrays.rb +0 -14
  44. data/test/test_create.rb +12 -26
  45. data/test/test_find.rb +0 -8
  46. data/test/test_ids.rb +0 -3
  47. data/test/test_nested_attributes.rb +10 -10
  48. data/test/test_update.rb +1 -1
  49. metadata +9 -11
  50. data/lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb +0 -20
  51. data/lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb +0 -23
  52. data/test/fixtures/cpk_with_default_value.rb +0 -3
  53. data/test/fixtures/cpk_with_default_values.yml +0 -7
@@ -28,7 +28,7 @@ class TestUpdate < ActiveSupport::TestCase
28
28
 
29
29
  def test_update_attributes
30
30
  testing_with do
31
- assert(@first.update_attributes(@klass_info[:update]))
31
+ assert(@first.update(@klass_info[:update]))
32
32
  assert(@first.reload)
33
33
  @klass_info[:update].each_pair do |attr_name, new_value|
34
34
  assert_equal(new_value, @first[attr_name])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: composite_primary_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.3.1
4
+ version: 12.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Savage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-01 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4
19
+ version: 6.0.0.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.4
26
+ version: 6.0.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -112,9 +112,7 @@ files:
112
112
  - lib/composite_primary_keys/composite_relation.rb
113
113
  - lib/composite_primary_keys/connection_adapters/abstract/database_statements.rb
114
114
  - lib/composite_primary_keys/connection_adapters/abstract_adapter.rb
115
- - lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb
116
115
  - lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb
117
- - lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb
118
116
  - lib/composite_primary_keys/connection_adapters/sqlserver/database_statements.rb
119
117
  - lib/composite_primary_keys/core.rb
120
118
  - lib/composite_primary_keys/counter_cache.rb
@@ -147,14 +145,13 @@ files:
147
145
  - test/connections/databases.ci.yml
148
146
  - test/connections/databases.example.yml
149
147
  - test/connections/databases.yml
148
+ - test/db_test.rb
150
149
  - test/fixtures/article.rb
151
150
  - test/fixtures/articles.yml
152
151
  - test/fixtures/capitol.rb
153
152
  - test/fixtures/capitols.yml
154
153
  - test/fixtures/comment.rb
155
154
  - test/fixtures/comments.yml
156
- - test/fixtures/cpk_with_default_value.rb
157
- - test/fixtures/cpk_with_default_values.yml
158
155
  - test/fixtures/db_definitions/db2-create-tables.sql
159
156
  - test/fixtures/db_definitions/db2-drop-tables.sql
160
157
  - test/fixtures/db_definitions/mysql.sql
@@ -269,16 +266,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
269
266
  version: 2.2.2
270
267
  required_rubygems_version: !ruby/object:Gem::Requirement
271
268
  requirements:
272
- - - ">="
269
+ - - ">"
273
270
  - !ruby/object:Gem::Version
274
- version: '0'
271
+ version: 1.3.1
275
272
  requirements: []
276
- rubygems_version: 3.1.2
273
+ rubygems_version: 3.0.3
277
274
  signing_key:
278
275
  specification_version: 4
279
276
  summary: Composite key support for ActiveRecord
280
277
  test_files:
281
278
  - test/abstract_unit.rb
279
+ - test/db_test.rb
282
280
  - test/README_tests.rdoc
283
281
  - test/setup.rb
284
282
  - test/test_aliases.rb
@@ -1,20 +0,0 @@
1
- module ActiveRecord
2
- module ConnectionAdapters
3
- class AbstractMysqlAdapter
4
- def subquery_for(key, select)
5
- subselect = select.clone
6
- subselect.projections = [key]
7
-
8
- # Materialize subquery by adding distinct
9
- # to work with MySQL 5.7.6 which sets optimizer_switch='derived_merge=on'
10
- subselect.distinct unless select.limit || select.offset || select.orders.any?
11
-
12
- # CPK
13
- #key_name = quote_column_name(key.name)
14
- key_name = Array(key).map {|a_key| quote_column_name(a_key.name)}.join(',')
15
-
16
- Arel::SelectManager.new(subselect.as("__active_record_temp")).project(Arel.sql(key_name))
17
- end
18
- end
19
- end
20
- end
@@ -1,23 +0,0 @@
1
- module ActiveRecord
2
- module ConnectionAdapters
3
- class SQLite3Adapter
4
- def join_to_update(update, select, key)
5
- if key.is_a?(::CompositePrimaryKeys::CompositeKeys)
6
- subselect = subquery_for(key, select)
7
- subselect_aliased = Arel::Nodes::TableAlias.new(subselect, 'cpk_inner')
8
- cpk_subselect = Arel::SelectManager.new(subselect_aliased)
9
- cpk_subselect.project('*')
10
- key.each do |a_key|
11
- where_expr = subselect_aliased[a_key.name].eq(update.ast.relation[a_key.name])
12
- cpk_subselect.where(where_expr)
13
- end
14
- where_clause = Arel::Nodes::SqlLiteral.new("EXISTS (#{cpk_subselect.to_sql})")
15
- update.where(where_clause)
16
- else
17
- super
18
- end
19
- end
20
- alias join_to_delete join_to_update
21
- end
22
- end
23
- end
@@ -1,3 +0,0 @@
1
- class CpkWithDefaultValue < ActiveRecord::Base
2
- self.primary_keys = :record_id, :record_version
3
- end
@@ -1,7 +0,0 @@
1
- first:
2
- record_id: 1
3
- record_version: First
4
-
5
- second:
6
- record_id: 1
7
- record_version: Second