ardb 0.29.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.l.yml +8 -0
  3. data/.rubocop.yml +3 -0
  4. data/.t.yml +6 -0
  5. data/Gemfile +4 -2
  6. data/ardb.gemspec +9 -6
  7. data/bin/ardb +2 -0
  8. data/lib/ardb.rb +75 -61
  9. data/lib/ardb/adapter/base.rb +40 -19
  10. data/lib/ardb/adapter/mysql.rb +2 -0
  11. data/lib/ardb/adapter/postgresql.rb +36 -25
  12. data/lib/ardb/adapter/sqlite.rb +7 -7
  13. data/lib/ardb/adapter_spy.rb +16 -14
  14. data/lib/ardb/cli.rb +23 -18
  15. data/lib/ardb/cli/clirb.rb +5 -0
  16. data/lib/ardb/cli/commands.rb +184 -95
  17. data/lib/ardb/db_tests.rb +2 -0
  18. data/lib/ardb/default_order_by.rb +13 -11
  19. data/lib/ardb/migration.rb +7 -4
  20. data/lib/ardb/record_spy.rb +42 -38
  21. data/lib/ardb/relation_spy.rb +27 -25
  22. data/lib/ardb/require_autoloaded_active_record_files.rb +3 -1
  23. data/lib/ardb/test_helpers.rb +11 -9
  24. data/lib/ardb/use_db_default.rb +9 -7
  25. data/lib/ardb/version.rb +3 -1
  26. data/script/determine_autoloaded_active_record_files.rb +22 -20
  27. data/test/helper.rb +2 -0
  28. data/test/support/factory.rb +2 -1
  29. data/test/support/fake_schema.rb +3 -1
  30. data/test/support/postgresql/schema.rb +3 -1
  31. data/test/support/postgresql/setup_test_db.rb +3 -1
  32. data/test/support/relative_require_test_db_file.rb +1 -0
  33. data/test/support/require_test_db_file.rb +1 -0
  34. data/test/unit/adapter/base_tests.rb +9 -5
  35. data/test/unit/adapter/mysql_tests.rb +2 -0
  36. data/test/unit/adapter/postgresql_tests.rb +14 -14
  37. data/test/unit/adapter/sqlite_tests.rb +2 -0
  38. data/test/unit/adapter_spy_tests.rb +4 -1
  39. data/test/unit/ardb_tests.rb +28 -13
  40. data/test/unit/cli_tests.rb +47 -34
  41. data/test/unit/db_tests_tests.rb +4 -1
  42. data/test/unit/default_order_by_tests.rb +18 -13
  43. data/test/unit/migration_tests.rb +8 -5
  44. data/test/unit/record_spy_tests.rb +21 -14
  45. data/test/unit/relation_spy_tests.rb +28 -22
  46. data/test/unit/test_helpers_tests.rb +4 -1
  47. data/test/unit/use_db_default_tests.rb +16 -7
  48. metadata +27 -11
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "assert"
2
4
  require "ardb/test_helpers"
3
5
 
@@ -124,7 +126,8 @@ module Ardb::TestHelpers
124
126
  class ResetDbTests < UsageTests
125
127
  desc "reset db methods"
126
128
 
127
- 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
128
131
  assert_equal 0, @adapter_spy.drop_db_called_count
129
132
  assert_equal 0, @adapter_spy.create_db_called_count
130
133
  assert_equal 0, @adapter_spy.load_schema_called_count
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "assert"
2
4
  require "ardb/use_db_default"
3
5
 
4
- require "much-plugin"
6
+ require "much-mixin"
5
7
  require "ardb/record_spy"
6
8
 
7
9
  module Ardb::UseDbDefault
@@ -17,8 +19,8 @@ module Ardb::UseDbDefault
17
19
 
18
20
  should have_imeths :use_db_default, :ardb_use_db_default_attrs
19
21
 
20
- should "use much-plugin" do
21
- assert_includes MuchPlugin, Ardb::UseDbDefault
22
+ should "use much-mixin" do
23
+ assert_includes MuchMixin, Ardb::UseDbDefault
22
24
  end
23
25
 
24
26
  should "know its use db default attrs" do
@@ -93,7 +95,9 @@ module Ardb::UseDbDefault
93
95
  # when it was created (yielded)
94
96
  attrs_before_yield = nil
95
97
  subject.instance_eval do
96
- 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
97
101
  end
98
102
 
99
103
  assert_instance_of Hash, attrs_before_yield
@@ -117,7 +121,7 @@ module Ardb::UseDbDefault
117
121
 
118
122
  applied_expr = @record_class.relation_spy.applied.first
119
123
  assert_equal :where, applied_expr.type
120
- assert_equal [{ :id => subject.id }], applied_expr.args
124
+ assert_equal [{ id: subject.id }], applied_expr.args
121
125
 
122
126
  @unchanged_attr_names.each do |name|
123
127
  exp = @record_class.relation_spy.pluck_values[name]
@@ -141,16 +145,21 @@ module Ardb::UseDbDefault
141
145
  attr_accessor :attributes, :changed_use_db_default_attrs
142
146
 
143
147
  def use_db_default_attr_changed?(attr_name)
144
- self.changed_use_db_default_attrs.include?(attr_name)
148
+ changed_use_db_default_attrs.include?(attr_name)
145
149
  end
146
150
 
147
151
  def method_missing(method, *args, &block)
148
152
  match_data = method.to_s.match(/(\w+)_changed\?/)
149
153
  if match_data && match_data[1]
150
- self.use_db_default_attr_changed?(match_data[1])
154
+ use_db_default_attr_changed?(match_data[1])
151
155
  else
152
156
  super
153
157
  end
154
158
  end
159
+
160
+ def respond_to_missing?(method)
161
+ match_data = method.to_s.match(/(\w+)_changed\?/)
162
+ match_data && match_data[1]
163
+ end
155
164
  end
156
165
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ardb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.1
4
+ version: 0.29.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Redding
@@ -9,22 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-01 00:00:00.000000000 Z
12
+ date: 2021-01-10 00:00:00.000000000 Z
13
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
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.6.0
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: assert
16
30
  requirement: !ruby/object:Gem::Requirement
17
31
  requirements:
18
32
  - - "~>"
19
33
  - !ruby/object:Gem::Version
20
- version: 2.19.0
34
+ version: 2.19.3
21
35
  type: :development
22
36
  prerelease: false
23
37
  version_requirements: !ruby/object:Gem::Requirement
24
38
  requirements:
25
39
  - - "~>"
26
40
  - !ruby/object:Gem::Version
27
- version: 2.19.0
41
+ version: 2.19.3
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: activerecord
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -66,33 +80,33 @@ dependencies:
66
80
  - !ruby/object:Gem::Version
67
81
  version: '7.0'
68
82
  - !ruby/object:Gem::Dependency
69
- name: much-plugin
83
+ name: much-mixin
70
84
  requirement: !ruby/object:Gem::Requirement
71
85
  requirements:
72
86
  - - "~>"
73
87
  - !ruby/object:Gem::Version
74
- version: 0.2.1
88
+ version: 0.2.4
75
89
  type: :runtime
76
90
  prerelease: false
77
91
  version_requirements: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: 0.2.1
95
+ version: 0.2.4
82
96
  - !ruby/object:Gem::Dependency
83
97
  name: scmd
84
98
  requirement: !ruby/object:Gem::Requirement
85
99
  requirements:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
- version: 3.0.3
102
+ version: 3.0.4
89
103
  type: :runtime
90
104
  prerelease: false
91
105
  version_requirements: !ruby/object:Gem::Requirement
92
106
  requirements:
93
107
  - - "~>"
94
108
  - !ruby/object:Gem::Version
95
- version: 3.0.3
109
+ version: 3.0.4
96
110
  description: Activerecord database tools.
97
111
  email:
98
112
  - kelly@kellyredding.com
@@ -103,6 +117,9 @@ extensions: []
103
117
  extra_rdoc_files: []
104
118
  files:
105
119
  - ".gitignore"
120
+ - ".l.yml"
121
+ - ".rubocop.yml"
122
+ - ".t.yml"
106
123
  - Gemfile
107
124
  - LICENSE
108
125
  - README.md
@@ -171,8 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
188
  - !ruby/object:Gem::Version
172
189
  version: '0'
173
190
  requirements: []
174
- rubyforge_project:
175
- rubygems_version: 2.7.6.2
191
+ rubygems_version: 3.2.4
176
192
  signing_key:
177
193
  specification_version: 4
178
194
  summary: Activerecord database tools.