ardb 0.28.1 → 0.29.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 (59) hide show
  1. checksums.yaml +7 -7
  2. data/.l.yml +8 -0
  3. data/.rubocop.yml +3 -0
  4. data/.t.yml +6 -0
  5. data/Gemfile +21 -8
  6. data/README.md +252 -3
  7. data/ardb.gemspec +14 -10
  8. data/bin/ardb +3 -1
  9. data/lib/ardb.rb +110 -80
  10. data/lib/ardb/adapter/base.rb +73 -47
  11. data/lib/ardb/adapter/mysql.rb +4 -17
  12. data/lib/ardb/adapter/postgresql.rb +51 -46
  13. data/lib/ardb/adapter/sqlite.rb +11 -15
  14. data/lib/ardb/adapter_spy.rb +18 -30
  15. data/lib/ardb/cli.rb +29 -24
  16. data/lib/ardb/cli/clirb.rb +19 -17
  17. data/lib/ardb/cli/commands.rb +308 -129
  18. data/lib/ardb/db_tests.rb +4 -4
  19. data/lib/ardb/default_order_by.rb +13 -21
  20. data/lib/ardb/migration.rb +15 -16
  21. data/lib/ardb/record_spy.rb +46 -61
  22. data/lib/ardb/relation_spy.rb +27 -31
  23. data/lib/ardb/require_autoloaded_active_record_files.rb +174 -58
  24. data/lib/ardb/test_helpers.rb +13 -14
  25. data/lib/ardb/use_db_default.rb +10 -19
  26. data/lib/ardb/version.rb +3 -1
  27. data/script/determine_autoloaded_active_record_files.rb +31 -24
  28. data/test/helper.rb +6 -13
  29. data/test/support/factory.rb +4 -3
  30. data/test/support/fake_schema.rb +3 -1
  31. data/test/support/postgresql/migrations/{.gitkeep → .keep} +0 -0
  32. data/test/support/postgresql/schema.rb +2 -1
  33. data/test/support/postgresql/setup_test_db.rb +17 -15
  34. data/test/support/relative_require_test_db_file.rb +1 -0
  35. data/test/support/require_test_db_file.rb +1 -0
  36. data/test/system/.keep +0 -0
  37. data/test/unit/adapter/base_tests.rb +83 -55
  38. data/test/unit/adapter/mysql_tests.rb +4 -19
  39. data/test/unit/adapter/postgresql_tests.rb +21 -30
  40. data/test/unit/adapter/sqlite_tests.rb +5 -11
  41. data/test/unit/adapter_spy_tests.rb +6 -17
  42. data/test/unit/ardb_tests.rb +81 -53
  43. data/test/unit/cli_tests.rb +232 -157
  44. data/test/unit/db_tests_tests.rb +7 -7
  45. data/test/unit/default_order_by_tests.rb +21 -20
  46. data/test/unit/migration_tests.rb +17 -18
  47. data/test/unit/record_spy_tests.rb +36 -34
  48. data/test/unit/relation_spy_tests.rb +40 -63
  49. data/test/unit/test_helpers_tests.rb +7 -15
  50. data/test/unit/use_db_default_tests.rb +22 -17
  51. metadata +117 -84
  52. data/lib/ardb/has_slug.rb +0 -107
  53. data/lib/ardb/migration_helpers.rb +0 -77
  54. data/lib/ardb/pg_json.rb +0 -90
  55. data/test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb +0 -13
  56. data/test/system/pg_json_tests.rb +0 -85
  57. data/test/unit/has_slug_tests.rb +0 -341
  58. data/test/unit/migration_helpers_tests.rb +0 -65
  59. data/test/unit/pg_json_tests.rb +0 -39
@@ -1,10 +1,11 @@
1
- require 'assert'
2
- require 'ardb/test_helpers'
1
+ # frozen_string_literal: true
3
2
 
4
- require 'ardb/adapter_spy'
3
+ require "assert"
4
+ require "ardb/test_helpers"
5
5
 
6
- module Ardb::TestHelpers
6
+ require "ardb/adapter_spy"
7
7
 
8
+ module Ardb::TestHelpers
8
9
  class UnitTests < Assert::Context
9
10
  desc "Ardb::TestHelpers"
10
11
  subject{ Ardb::TestHelpers }
@@ -13,7 +14,6 @@ module Ardb::TestHelpers
13
14
  should have_imeths :create_db!, :create_db, :drop_db!, :drop_db
14
15
  should have_imeths :connect_db!, :connect_db, :migrate_db!, :migrate_db
15
16
  should have_imeths :reset_db, :reset_db!
16
-
17
17
  end
18
18
 
19
19
  class UsageTests < UnitTests
@@ -21,7 +21,6 @@ module Ardb::TestHelpers
21
21
  @adapter_spy = Ardb::AdapterSpy.new
22
22
  Assert.stub(Ardb, :adapter){ @adapter_spy }
23
23
  end
24
-
25
24
  end
26
25
 
27
26
  class DropTablesTests < UsageTests
@@ -32,7 +31,6 @@ module Ardb::TestHelpers
32
31
  subject.drop_tables
33
32
  assert_equal 1, @adapter_spy.drop_tables_called_count
34
33
  end
35
-
36
34
  end
37
35
 
38
36
  class LoadSchemaTests < UsageTests
@@ -43,7 +41,6 @@ module Ardb::TestHelpers
43
41
  subject.load_schema
44
42
  assert_equal 1, @adapter_spy.load_schema_called_count
45
43
  end
46
-
47
44
  end
48
45
 
49
46
  class CreateDbTests < UsageTests
@@ -64,7 +61,6 @@ module Ardb::TestHelpers
64
61
  subject.create_db!
65
62
  assert_equal 2, @adapter_spy.create_db_called_count
66
63
  end
67
-
68
64
  end
69
65
 
70
66
  class DropDbTests < UsageTests
@@ -85,7 +81,6 @@ module Ardb::TestHelpers
85
81
  subject.drop_db!
86
82
  assert_equal 2, @adapter_spy.drop_db_called_count
87
83
  end
88
-
89
84
  end
90
85
 
91
86
  class ConnectDbTests < UsageTests
@@ -106,7 +101,6 @@ module Ardb::TestHelpers
106
101
  subject.connect_db!
107
102
  assert_equal 2, @adapter_spy.connect_db_called_count
108
103
  end
109
-
110
104
  end
111
105
 
112
106
  class MigrateDbTests < UsageTests
@@ -127,13 +121,13 @@ module Ardb::TestHelpers
127
121
  subject.migrate_db!
128
122
  assert_equal 2, @adapter_spy.migrate_db_called_count
129
123
  end
130
-
131
124
  end
132
125
 
133
126
  class ResetDbTests < UsageTests
134
127
  desc "reset db methods"
135
128
 
136
- should "tell the adapter to drop/create the db and load the schema only once" do
129
+ should "tell the adapter to drop/create the db and load the schema "\
130
+ "only once" do
137
131
  assert_equal 0, @adapter_spy.drop_db_called_count
138
132
  assert_equal 0, @adapter_spy.create_db_called_count
139
133
  assert_equal 0, @adapter_spy.load_schema_called_count
@@ -168,7 +162,5 @@ module Ardb::TestHelpers
168
162
  assert_equal 2, @adapter_spy.create_db_called_count
169
163
  assert_equal 2, @adapter_spy.load_schema_called_count
170
164
  end
171
-
172
165
  end
173
-
174
166
  end
@@ -1,11 +1,12 @@
1
- require 'assert'
2
- require 'ardb/use_db_default'
1
+ # frozen_string_literal: true
3
2
 
4
- require 'much-plugin'
5
- require 'ardb/record_spy'
3
+ require "assert"
4
+ require "ardb/use_db_default"
6
5
 
7
- module Ardb::UseDbDefault
6
+ require "much-mixin"
7
+ require "ardb/record_spy"
8
8
 
9
+ module Ardb::UseDbDefault
9
10
  class UnitTests < Assert::Context
10
11
  desc "Ardb::UseDbDefault"
11
12
  setup do
@@ -18,8 +19,8 @@ module Ardb::UseDbDefault
18
19
 
19
20
  should have_imeths :use_db_default, :ardb_use_db_default_attrs
20
21
 
21
- should "use much-plugin" do
22
- assert_includes MuchPlugin, Ardb::UseDbDefault
22
+ should "use much-mixin" do
23
+ assert_includes MuchMixin, Ardb::UseDbDefault
23
24
  end
24
25
 
25
26
  should "know its use db default attrs" do
@@ -27,9 +28,9 @@ module Ardb::UseDbDefault
27
28
  end
28
29
 
29
30
  should "add use db default attributes using `use_db_default`" do
30
- attr_name = Factory.string
31
- subject.use_db_default(attr_name)
32
- assert_includes attr_name, subject.ardb_use_db_default_attrs
31
+ an_attr_name = Factory.string
32
+ subject.use_db_default(an_attr_name)
33
+ assert_includes an_attr_name, subject.ardb_use_db_default_attrs
33
34
 
34
35
  attr_names = [Factory.string, Factory.string.to_sym]
35
36
  subject.use_db_default(*attr_names)
@@ -58,7 +59,6 @@ module Ardb::UseDbDefault
58
59
  exp = [:ardb_allow_db_to_default_attrs]
59
60
  assert_equal exp, callback.args
60
61
  end
61
-
62
62
  end
63
63
 
64
64
  class InitTests < UnitTests
@@ -95,7 +95,9 @@ module Ardb::UseDbDefault
95
95
  # when it was created (yielded)
96
96
  attrs_before_yield = nil
97
97
  subject.instance_eval do
98
- ardb_allow_db_to_default_attrs{ attrs_before_yield = self.attributes.dup }
98
+ ardb_allow_db_to_default_attrs do
99
+ attrs_before_yield = attributes.dup
100
+ end
99
101
  end
100
102
 
101
103
  assert_instance_of Hash, attrs_before_yield
@@ -119,7 +121,7 @@ module Ardb::UseDbDefault
119
121
 
120
122
  applied_expr = @record_class.relation_spy.applied.first
121
123
  assert_equal :where, applied_expr.type
122
- assert_equal [{ :id => subject.id }], applied_expr.args
124
+ assert_equal [{ id: subject.id }], applied_expr.args
123
125
 
124
126
  @unchanged_attr_names.each do |name|
125
127
  exp = @record_class.relation_spy.pluck_values[name]
@@ -132,7 +134,6 @@ module Ardb::UseDbDefault
132
134
  assert_equal @original_attrs[name], subject.attributes[name]
133
135
  end
134
136
  end
135
-
136
137
  end
137
138
 
138
139
  module UseDbDefaultRecordSpy
@@ -144,17 +145,21 @@ module Ardb::UseDbDefault
144
145
  attr_accessor :attributes, :changed_use_db_default_attrs
145
146
 
146
147
  def use_db_default_attr_changed?(attr_name)
147
- self.changed_use_db_default_attrs.include?(attr_name)
148
+ changed_use_db_default_attrs.include?(attr_name)
148
149
  end
149
150
 
150
151
  def method_missing(method, *args, &block)
151
152
  match_data = method.to_s.match(/(\w+)_changed\?/)
152
153
  if match_data && match_data[1]
153
- self.use_db_default_attr_changed?(match_data[1])
154
+ use_db_default_attr_changed?(match_data[1])
154
155
  else
155
156
  super
156
157
  end
157
158
  end
158
- end
159
159
 
160
+ def respond_to_missing?(method)
161
+ match_data = method.to_s.match(/(\w+)_changed\?/)
162
+ match_data && match_data[1]
163
+ end
164
+ end
160
165
  end
metadata CHANGED
@@ -1,78 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ardb
3
- version: !ruby/object:Gem::Version
4
- version: 0.28.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.29.2
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Kelly Redding
8
8
  - Collin Redding
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2016-06-03 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: assert
12
+ date: 2021-01-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: much-style-guide
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.6.0
21
+ type: :development
17
22
  prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ~>
21
- - !ruby/object:Gem::Version
22
- version: 2.16.1
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.6.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: assert
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 2.19.3
23
35
  type: :development
24
- version_requirements: *id001
25
- - !ruby/object:Gem::Dependency
26
- name: activerecord
27
36
  prerelease: false
28
- requirement: &id002 !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ~>
31
- - &id003 !ruby/object:Gem::Version
32
- version: "3.2"
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 2.19.3
42
+ - !ruby/object:Gem::Dependency
43
+ name: activerecord
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">"
47
+ - !ruby/object:Gem::Version
48
+ version: '5.0'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '7.0'
33
52
  type: :runtime
34
- version_requirements: *id002
35
- - !ruby/object:Gem::Dependency
36
- name: activesupport
37
53
  prerelease: false
38
- requirement: &id004 !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ~>
41
- - *id003
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">"
57
+ - !ruby/object:Gem::Version
58
+ version: '5.0'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '7.0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: activesupport
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '7.0'
42
72
  type: :runtime
43
- version_requirements: *id004
44
- - !ruby/object:Gem::Dependency
45
- name: much-plugin
46
73
  prerelease: false
47
- requirement: &id005 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ~>
50
- - !ruby/object:Gem::Version
51
- version: 0.2.0
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">"
77
+ - !ruby/object:Gem::Version
78
+ version: '5.0'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '7.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: much-mixin
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.2.4
52
89
  type: :runtime
53
- version_requirements: *id005
54
- - !ruby/object:Gem::Dependency
55
- name: scmd
56
90
  prerelease: false
57
- requirement: &id006 !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: 3.0.2
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.2.4
96
+ - !ruby/object:Gem::Dependency
97
+ name: scmd
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 3.0.4
62
103
  type: :runtime
63
- version_requirements: *id006
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 3.0.4
64
110
  description: Activerecord database tools.
65
- email:
111
+ email:
66
112
  - kelly@kellyredding.com
67
113
  - collin.redding@me.com
68
- executables:
114
+ executables:
69
115
  - ardb
70
116
  extensions: []
71
-
72
117
  extra_rdoc_files: []
73
-
74
- files:
75
- - .gitignore
118
+ files:
119
+ - ".gitignore"
120
+ - ".l.yml"
121
+ - ".rubocop.yml"
122
+ - ".t.yml"
76
123
  - Gemfile
77
124
  - LICENSE
78
125
  - README.md
@@ -89,10 +136,7 @@ files:
89
136
  - lib/ardb/cli/commands.rb
90
137
  - lib/ardb/db_tests.rb
91
138
  - lib/ardb/default_order_by.rb
92
- - lib/ardb/has_slug.rb
93
139
  - lib/ardb/migration.rb
94
- - lib/ardb/migration_helpers.rb
95
- - lib/ardb/pg_json.rb
96
140
  - lib/ardb/record_spy.rb
97
141
  - lib/ardb/relation_spy.rb
98
142
  - lib/ardb/require_autoloaded_active_record_files.rb
@@ -104,13 +148,12 @@ files:
104
148
  - test/helper.rb
105
149
  - test/support/factory.rb
106
150
  - test/support/fake_schema.rb
107
- - test/support/postgresql/migrations/.gitkeep
108
- - test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb
151
+ - test/support/postgresql/migrations/.keep
109
152
  - test/support/postgresql/schema.rb
110
153
  - test/support/postgresql/setup_test_db.rb
111
154
  - test/support/relative_require_test_db_file.rb
112
155
  - test/support/require_test_db_file.rb
113
- - test/system/pg_json_tests.rb
156
+ - test/system/.keep
114
157
  - test/unit/adapter/base_tests.rb
115
158
  - test/unit/adapter/mysql_tests.rb
116
159
  - test/unit/adapter/postgresql_tests.rb
@@ -120,52 +163,45 @@ files:
120
163
  - test/unit/cli_tests.rb
121
164
  - test/unit/db_tests_tests.rb
122
165
  - test/unit/default_order_by_tests.rb
123
- - test/unit/has_slug_tests.rb
124
- - test/unit/migration_helpers_tests.rb
125
166
  - test/unit/migration_tests.rb
126
- - test/unit/pg_json_tests.rb
127
167
  - test/unit/record_spy_tests.rb
128
168
  - test/unit/relation_spy_tests.rb
129
169
  - test/unit/test_helpers_tests.rb
130
170
  - test/unit/use_db_default_tests.rb
131
171
  - tmp/.gitkeep
132
172
  homepage: http://github.com/redding/ardb
133
- licenses:
173
+ licenses:
134
174
  - MIT
135
175
  metadata: {}
136
-
137
176
  post_install_message:
138
177
  rdoc_options: []
139
-
140
- require_paths:
178
+ require_paths:
141
179
  - lib
142
- required_ruby_version: !ruby/object:Gem::Requirement
143
- requirements:
144
- - &id007
145
- - ">="
146
- - !ruby/object:Gem::Version
147
- version: "0"
148
- required_rubygems_version: !ruby/object:Gem::Requirement
149
- requirements:
150
- - *id007
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '2.5'
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
151
190
  requirements: []
152
-
153
- rubyforge_project:
154
- rubygems_version: 2.5.1
191
+ rubygems_version: 3.2.4
155
192
  signing_key:
156
193
  specification_version: 4
157
194
  summary: Activerecord database tools.
158
- test_files:
195
+ test_files:
159
196
  - test/helper.rb
160
197
  - test/support/factory.rb
161
198
  - test/support/fake_schema.rb
162
- - test/support/postgresql/migrations/.gitkeep
163
- - test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb
199
+ - test/support/postgresql/migrations/.keep
164
200
  - test/support/postgresql/schema.rb
165
201
  - test/support/postgresql/setup_test_db.rb
166
202
  - test/support/relative_require_test_db_file.rb
167
203
  - test/support/require_test_db_file.rb
168
- - test/system/pg_json_tests.rb
204
+ - test/system/.keep
169
205
  - test/unit/adapter/base_tests.rb
170
206
  - test/unit/adapter/mysql_tests.rb
171
207
  - test/unit/adapter/postgresql_tests.rb
@@ -175,10 +211,7 @@ test_files:
175
211
  - test/unit/cli_tests.rb
176
212
  - test/unit/db_tests_tests.rb
177
213
  - test/unit/default_order_by_tests.rb
178
- - test/unit/has_slug_tests.rb
179
- - test/unit/migration_helpers_tests.rb
180
214
  - test/unit/migration_tests.rb
181
- - test/unit/pg_json_tests.rb
182
215
  - test/unit/record_spy_tests.rb
183
216
  - test/unit/relation_spy_tests.rb
184
217
  - test/unit/test_helpers_tests.rb