ardb 0.29.1 → 0.29.2

Sign up to get free protection for your applications and to get access to all the features.
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.