stubberry 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5548414865196ce42a7b4bd38b5692e40f9d7eeda451bb0482bc839dc6e59291
4
- data.tar.gz: a52fe5153a697cf2239178a250f40c4f1e19a37d78fccaabca71ed1fb6b084a0
3
+ metadata.gz: ee7c2b90c9dd5e32707924b85ad8e2b88d40fc3617d1404ee839227b21ebf414
4
+ data.tar.gz: 43760ddf930c7d4a3a0a582c6f705ea39d218b3e84619345785e58df68461312
5
5
  SHA512:
6
- metadata.gz: 1c0049bda0ce93dcdf6291d0cdc378f7280ddaed71cdef7fcc48fb61f5bbd5560a5fa8afd8223c7b70a267c7fae9acbd35801abf8382f27dcdef78f9beb659ee
7
- data.tar.gz: da8c024937350a5d9ba2961e749e579b248d10533f87c67e98aea39ed999d52d1005c54b4167ad77978057e0d54100181a09ad7f80e0c6f80dba2ca3e24fe02f
6
+ metadata.gz: 5a89ea231eb74516a8b1e3cfdad53fcb9efabc11d10cd31e5fd954441ef76ffe4caf75581b226e2cdcae7c1b09fed9cfe72cb80e10ea951e33dda15f373bc934
7
+ data.tar.gz: 6fb0d51c8f5ecf01ba4b670e4e50fb5456d63159c396166f27be21f63e793849f22a077704c2522716a510ad1168cb255d612c2fc2d633da10578789a0ea7279
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ inherit_gem:
2
+ rubocop-shopify: rubocop.yml
data/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
- # 0.2.1
1
+ # 0.3.0
2
+ * rubocop-shopify added as a base linter
3
+ * assertion for method called rewritten to use stub_must under the hood
4
+ * DRYied some methods to Stubberry module methods
5
+ * introduced ruby 3.0 kwargs compatible signatures
6
+
7
+
8
+ # 0.2.0
2
9
  * new module with assertion methods added
3
10
  * assert_method_called added, this is a flow assertion, you can check the params, and you can check that method was called inside the block,
4
11
  without stubbing objects and interfering with the original flow
@@ -6,7 +13,6 @@
6
13
  * singleton_classes is now properly cleared after, see PR: https://github.com/seattlerb/minitest/pull/891
7
14
  * some methods got '__' prefixes, just to prevent naming collisions
8
15
 
9
-
10
16
 
11
17
  # 0.1.1
12
18
  * initial gem release
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  # Specify your gem's dependencies in stubberry.gemspec
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rake/testtask"
3
5
 
@@ -7,4 +9,4 @@ Rake::TestTask.new(:test) do |t|
7
9
  t.test_files = FileList["test/**/*_test.rb"]
8
10
  end
9
11
 
10
- task :default => :test
12
+ task default: :test
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "stubberry"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # this module provide two methods for active record classes
2
4
  # to easily stub any record attributes and methods disregarding the way
3
5
  # record was obtained inside the yielding block, you just need an id.
@@ -7,90 +9,82 @@
7
9
  # that's a very error prone approach, with stub_orm_* methods we
8
10
  # do not care about the way object was obtained as long as after_find
9
11
  # callback was executed
10
- module Stubberry::ActiveRecord
11
- extend ActiveSupport::Concern
12
+ module Stubberry
13
+ module ActiveRecord
14
+ extend ActiveSupport::Concern
12
15
 
13
- # for any active record object for classes included Stubberry::ActiveRecord
14
- # we adding after_find callback extending object with self.class.extend_any
15
- # default implementation of self.class.extend_any does nothing
16
- included do
17
- after_find {|obj| self.class.__extend_any(obj) }
18
- end
16
+ # for any active record object for classes included Stubberry::ActiveRecord
17
+ # we adding after_find callback extending object with self.class.extend_any
18
+ # default implementation of self.class.extend_any does nothing
19
+ included do
20
+ after_find { |obj| self.class.__extend_any(obj) }
21
+ end
19
22
 
20
- module ClassMethods
23
+ module ClassMethods
24
+ # This method could be used whenever there is a need for stubbing
25
+ # the exact ActiveRecord object attributes inside some execution flow
26
+ # __WITHOUT__!! underlying record change
27
+ def stub_orm_attr(id, obj_or_attributes, &block)
28
+ stub(:__extend_any, ->(obj) {
29
+ return unless obj.id == id && obj.is_a?(self)
21
30
 
22
- # This method could be used whenever there is a need for stubbing
23
- # the exact ActiveRecord object attributes inside some execution flow
24
- # __WITHOUT__!! underlying record change
25
- def stub_orm_attr(id, obj_or_attributes )
26
- stub(:__extend_any, -> (obj) {
27
- return unless obj.id == id && obj.is_a?( self )
28
- obj.assign_attributes( obj_or_attributes.try(:attributes) || obj_or_attributes )
29
- }) do
30
- yield
31
+ obj.assign_attributes(obj_or_attributes.try(:attributes) || obj_or_attributes)
32
+ }, &block)
31
33
  end
32
- end
33
34
 
34
- # This method could be used whenever there is a need for stubbing
35
- # the specific Active Record object's methods inside some flow piece
36
- # with ANY way of object retrieval
37
- def stub_orm_method(id, method, val_or_callable, *block_args )
38
- stub(:__extend_any, -> (obj) {
39
- return unless obj.id == id && obj.is_a?( self )
40
- __define_stub_method(obj, method, val_or_callable, *block_args )
41
- }) do
42
- yield
35
+ # This method could be used whenever there is a need for stubbing
36
+ # the specific Active Record object's methods inside some flow piece
37
+ # with ANY way of object retrieval
38
+ def stub_orm_method(id, method, val_or_callable, *block_args, **block_kwargs, &block)
39
+ stub(:__extend_any, ->(obj) {
40
+ return unless obj.id == id && obj.is_a?(self)
41
+
42
+ __define_stub_method(obj, method, val_or_callable, *block_args, **block_kwargs)
43
+ }, &block)
44
+ ensure
45
+ __revert_all_methods(id, method)
43
46
  end
44
- ensure
45
- __revert_all_methods(id, method)
46
- end
47
47
 
48
- private_class_method
48
+ def __define_stub_method(object, method, val_or_callable, *block_args, **block_kwargs)
49
+ method_new_name = __stub_method_name(method, obj: object)
49
50
 
50
- def __define_stub_method(object, method, val_or_callable, *block_args )
51
- method_new_name = __stub_method_name(method, obj: object)
51
+ Stubberry.__define_method_mimic_replacement(object, method)
52
52
 
53
- __define_dynamic_method_replacement( object, method )
53
+ object.singleton_class.alias_method(method_new_name, method)
54
54
 
55
- object.singleton_class.alias_method( method_new_name, method )
56
-
57
- object.define_singleton_method method do |*args, &blk|
58
- if val_or_callable.respond_to? :call
59
- val_or_callable.call(*args, &blk)
60
- else
61
- blk.call(*block_args) if blk
62
- val_or_callable
55
+ object.define_singleton_method(method) do |*args, **kwargs, &blk|
56
+ if val_or_callable.respond_to?(:call)
57
+ val_or_callable.call(*args, **kwargs, &blk)
58
+ else
59
+ blk&.call(*block_args, **block_kwargs)
60
+ val_or_callable
61
+ end
63
62
  end
63
+ __stubbed_objects(method_new_name) << object
64
64
  end
65
- __stubbed_objects(method_new_name) << object
66
- end
67
-
68
- def __define_dynamic_method_replacement( object, method )
69
- # this means method is dynamic
70
- return unless object.respond_to?( method ) && !object.methods.map(&:to_s).include?( method.to_s )
71
65
 
72
- object.define_singleton_method( method ) { | *args, **kargs, &block | super(*args, **kargs, &block) }
73
- end
66
+ def __stub_method_name(method, obj: nil, id: nil)
67
+ # __stub_class_method_id
68
+ "__stub_#{self}_#{method}_#{obj&.id || id}"
69
+ end
74
70
 
75
- def __stub_method_name(method, obj: nil, id: nil)
76
- # __stub_class_method_id
77
- "__stub_#{to_s}_#{method}_#{obj&.id || id}"
78
- end
71
+ def __revert_all_methods(id, method)
72
+ method_new_name = __stub_method_name(method, id: id)
79
73
 
80
- def __revert_all_methods(id, method)
81
- method_new_name = __stub_method_name(method, id: id)
74
+ __stubbed_objects(method_new_name).map(&:singleton_class).each do |metaclass|
75
+ metaclass.send(:undef_method, method)
76
+ metaclass.send(:alias_method, method, method_new_name)
77
+ metaclass.send(:undef_method, method_new_name)
78
+ end
79
+ end
82
80
 
83
- __stubbed_objects(method_new_name).map(&:singleton_class).each do |metaclass|
84
- metaclass.send :undef_method, method
85
- metaclass.send :alias_method, method, method_new_name
86
- metaclass.send :undef_method, method_new_name
81
+ def __stubbed_objects(method_name)
82
+ (@@__extended_objects ||= {})[method_name] ||= [] # rubocop:disable Style/ClassVars
87
83
  end
88
- end
89
84
 
90
- def __stubbed_objects(method_name)
91
- (@@__extended_objects ||= {})[method_name] ||= []
85
+ def __extend_any(_obj)
86
+ :do_nothing
87
+ end
92
88
  end
93
-
94
- def __extend_any(_obj); :do_nothing end
95
89
  end
96
- end if defined?(ActiveRecord)
90
+ end if defined?(ActiveRecord)
@@ -1,34 +1,14 @@
1
- module Stubberry::Assertions
2
-
3
- # it close to Object stub definition except its not
4
- # stubbing the original method instead its just controlling the flow
5
- # with minimum side effects
6
- def assert_method_called( object, method, inspect_params_callable = nil )
7
- base_method_new_name = "__old_#{method}_method"
8
- metaclass = object.singleton_class
9
-
10
- singleton_has_stubbing_method = object.singleton_methods.map(&:to_s).include?( method.to_s )
11
-
12
- # dynamic methods should be explicitly defined
13
- if object.respond_to?( method ) && !object.methods.map(&:to_s).include?( method.to_s )
14
- metaclass.define_method( method ) { |*args, **kargs, &block| super(*args, **kargs, &block) }
1
+ # frozen_string_literal: true
2
+
3
+ module Stubberry
4
+ module Assertions
5
+ # controlling the flow with minimum side effects
6
+ def assert_method_called(object, method, inspect_params_callable = nil, &block)
7
+ object_unbound_method = object.method(method.to_sym).unbind
8
+ object.stub_must(method, ->(*args, **kwargs, &blk) {
9
+ inspect_params_callable&.call(*args, **kwargs)
10
+ object_unbound_method.bind(object).call(*args, **kwargs, &blk)
11
+ }, &block)
15
12
  end
16
-
17
- metaclass.alias_method base_method_new_name, method
18
-
19
- call_happened = []
20
-
21
- metaclass.define_method( method ) do |*args, **kargs, &blk|
22
- inspect_params_callable.call(*args, **kargs) if inspect_params_callable
23
- call_happened << true
24
- send(base_method_new_name, *args, **kargs, &blk)
25
- end
26
-
27
- yield.tap { raise "#{method} wasn't called" if call_happened.length == 0 }
28
-
29
- ensure
30
- metaclass.__stbr_clear_singleton_class( method, base_method_new_name, singleton_has_stubbing_method )
31
13
  end
32
-
33
14
  end
34
-
@@ -1,80 +1,82 @@
1
- module Stubberry::Object
2
- # this is an enrichment of an original stub method from the minitest/mock
3
- def stub_must( name, val_or_callable, *block_args )
4
- method_new_name = "__minitest_stub__#{name}"
1
+ # frozen_string_literal: true
5
2
 
6
- singleton_has_stubbing_method = singleton_methods.map(&:to_s).include?( name.to_s )
3
+ module Stubberry
4
+ module Object
5
+ # this is an enrichment of an original stub method from the minitest/mock
6
+ def stub_must(name, val_or_callable, *block_args, **block_kwargs)
7
+ method_new_name = "__minitest_stub__#{name}"
7
8
 
8
- if respond_to?( name ) && !methods.map(&:to_s).include?( name.to_s )
9
- singleton_class.define_method( name ) { |*args, **kargs, &block| super(*args, **kargs, &block) }
10
- end
9
+ singleton_has_stubbing_method = singleton_methods.map(&:to_s).include?(name.to_s)
11
10
 
12
- singleton_class.alias_method( method_new_name, name )
11
+ Stubberry.__define_method_mimic_replacement(self, name)
13
12
 
14
- call_happened = []
13
+ singleton_class.alias_method(method_new_name, name)
15
14
 
16
- singleton_class.define_method( name ) do |*args, &blk|
17
- call_happened << true
15
+ call_happened = []
18
16
 
19
- if val_or_callable.respond_to?( :call )
20
- val_or_callable.call(*args, &blk)
21
- else
22
- blk.call(*block_args) if blk
23
- val_or_callable
17
+ singleton_class.define_method(name) do |*args, **kwargs, &blk|
18
+ call_happened << true
19
+
20
+ if val_or_callable.respond_to?(:call)
21
+ val_or_callable.call(*args, **kwargs, &blk)
22
+ else
23
+ blk&.call(*block_args, **block_kwargs)
24
+ val_or_callable
25
+ end
24
26
  end
25
- end
26
27
 
27
- (yield self).tap do
28
- raise "#{name} wasn't called" if call_happened.length == 0
28
+ (yield self).tap do
29
+ raise "#{name} wasn't called" if call_happened.empty?
30
+ end
31
+ ensure
32
+ singleton_class.__stbr_clear_singleton_class(name, method_new_name, singleton_has_stubbing_method)
29
33
  end
30
- ensure
31
- singleton_class.__stbr_clear_singleton_class( name, method_new_name, singleton_has_stubbing_method )
32
- end
33
34
 
34
- # the reverse method of stub_must -- will raise an issue whenever method
35
- # was called inside a stubbing block
36
- def stub_must_not( name, message = nil )
37
- method_new_name = "__minitest_stub__#{name}"
38
- singleton_has_stubbing_method = singleton_methods.map(&:to_s).include?( name.to_s )
35
+ # the reverse method of stub_must -- will raise an issue whenever method
36
+ # was called inside a stubbing block
37
+ def stub_must_not(name, message = nil)
38
+ method_new_name = "__minitest_stub__#{name}"
39
+ singleton_has_stubbing_method = singleton_methods.map(&:to_s).include?(name.to_s)
39
40
 
40
- metaclass = class << self; self; end
41
+ Stubberry.__define_method_mimic_replacement(self, name)
41
42
 
42
- if respond_to?(name) && !methods.map(&:to_s).include?( name.to_s )
43
- metaclass.define_method( name ) { | *args, **kargs, &block | super(*args, **kargs, &block) }
44
- end
43
+ singleton_class.alias_method(method_new_name, name)
45
44
 
46
- metaclass.alias_method( method_new_name, name )
45
+ singleton_class.define_method(name) { |*| raise message || "#{name} was called!" }
47
46
 
48
- metaclass.define_method( name ) { |*| raise message || "#{name} was called!" }
47
+ yield self
48
+ ensure
49
+ singleton_class.__stbr_clear_singleton_class(name, method_new_name, singleton_has_stubbing_method)
50
+ end
49
51
 
50
- yield self
51
- ensure
52
- metaclass.__stbr_clear_singleton_class( name, method_new_name, singleton_has_stubbing_method )
53
- end
52
+ # just for fun multiple stub_must in one call
53
+ def stub_must_all(name_to_var_or_callable, &block)
54
+ if name_to_var_or_callable.length == 1
55
+ stub_must(*name_to_var_or_callable.shift, &block)
56
+ else
57
+ stub_must(*name_to_var_or_callable.shift) { stub_must_all(name_to_var_or_callable, &block) }
58
+ end
59
+ end
54
60
 
55
- # just for fun multiple stub_must in one call
56
- def stub_must_all( name_to_var_or_callable, &block )
57
- name_to_var_or_callable.length == 1 ? stub_must( *name_to_var_or_callable.shift, &block )
58
- : stub_must( *name_to_var_or_callable.shift ) { stub_must_all(name_to_var_or_callable, &block ) }
59
- end
61
+ # stub only if respond otherwise just execute
62
+ def stub_if_def(name, val_or_callable, *block_args, &block)
63
+ respond_to?(name) ? stub(name, val_or_callable, *block_args, &block) : yield
64
+ end
60
65
 
61
- # stub only if respond otherwise just execute
62
- def stub_if_def(name, val_or_callable, *block_args, &block)
63
- respond_to?( name ) ? stub(name, val_or_callable, *block_args, &block) : yield
64
- end
66
+ # stub_must only if respond otherwise just execute
67
+ def stub_must_if_def(name, val_or_callable, *block_args, &block)
68
+ # stub only if respond otherwise just execute
69
+ respond_to?(name) ? stub_must(name, val_or_callable, *block_args, &block) : yield
70
+ end
65
71
 
66
- # stub_must only if respond otherwise just execute
67
- def stub_must_if_def(name, val_or_callable, *block_args, &block)
68
- # stub only if respond otherwise just execute
69
- respond_to?( name ) ? stub_must(name, val_or_callable, *block_args, &block) : yield
70
- end
72
+ def __stbr_clear_singleton_class(name, new_name, had_method_before)
73
+ raise Stubberry::Error, "This is a singleton_class methods only!" unless singleton_class?
71
74
 
72
- def __stbr_clear_singleton_class( name, new_name, had_method_before)
73
- raise Stubberry::Error.new('This is a singleton_class methods only!') unless singleton_class?
74
- remove_method( name )
75
- alias_method( name, new_name ) if had_method_before
76
- remove_method( new_name )
75
+ remove_method(name)
76
+ alias_method(name, new_name) if had_method_before
77
+ remove_method(new_name)
78
+ end
77
79
  end
78
80
  end
79
81
 
80
- Object.include(Stubberry::Object)
82
+ Object.include(Stubberry::Object)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Stubberry
2
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
3
5
  end
data/lib/stubberry.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "stubberry/version"
2
4
  require "stubberry/object"
3
5
  require "stubberry/active_record"
@@ -5,4 +7,16 @@ require "stubberry/assertions"
5
7
 
6
8
  module Stubberry
7
9
  class Error < StandardError; end
10
+
11
+ def self.__define_method_mimic_replacement(object, method)
12
+ return unless __is_a_method_mimic?(object, method)
13
+
14
+ object.define_singleton_method(method) { |*args, **kargs, &block| super(*args, **kargs, &block) }
15
+ end
16
+
17
+ # object responds to 'method' but, the are no such method among methods,
18
+ # i.e. it's run through a method_missing
19
+ def self.__is_a_method_mimic?(object, method)
20
+ object.respond_to?(method) && !object.methods.map(&:to_s).include?(method.to_s)
21
+ end
8
22
  end
data/stubberry.gemspec CHANGED
@@ -1,4 +1,6 @@
1
- require_relative 'lib/stubberry/version'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/stubberry/version"
2
4
 
3
5
  Gem::Specification.new do |spec|
4
6
  spec.name = "stubberry"
@@ -6,11 +8,12 @@ Gem::Specification.new do |spec|
6
8
  spec.authors = ["alekseyl"]
7
9
  spec.email = ["leshchuk@gmail.com"]
8
10
 
9
- spec.summary = %q{Ultimate collection of sweet stub methods for ruby test suits. Lets stub! }
10
- spec.description = %q{This a ultimate set of stub extensions. Suggest any reasonable subbing and I'll try to merge it. It will start with: stub_must, stub_must_not, stub_if_def and many more }
11
+ spec.summary = "Ultimate collection of sweet stub methods for ruby test suits. Lets stub! "
12
+ spec.description = "This a ultimate set of stub extensions. Suggest any reasonable subbing and I'll try to "\
13
+ "merge it. It will start with: stub_must, stub_must_not, stub_if_def and many more "
11
14
  spec.homepage = "https://github.com/alekseyl/stubberry"
12
15
  spec.license = "MIT"
13
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
16
+ spec.required_ruby_version = ">= 2.5"
14
17
 
15
18
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
16
19
 
@@ -20,21 +23,20 @@ Gem::Specification.new do |spec|
20
23
 
21
24
  # Specify which files should be added to the gem when it is released.
22
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
27
+ %x(git ls-files -z).split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
28
  end
26
29
  spec.bindir = "exe"
27
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
31
  spec.require_paths = ["lib"]
29
32
 
30
- spec.required_ruby_version = '>= 2.5'
31
- spec.add_development_dependency "activerecord", ">= 6.1"
32
-
33
- spec.add_development_dependency "bundler", ">= 1"
34
- spec.add_development_dependency "rake", ">= 12.3.3"
35
- spec.add_development_dependency "minitest", "~> 5.0"
36
- spec.add_development_dependency 'sqlite3'
33
+ spec.add_development_dependency("activerecord", ">= 6.1")
37
34
 
35
+ spec.add_development_dependency("bundler", ">= 1")
36
+ spec.add_development_dependency("minitest", "~> 5.0")
37
+ spec.add_development_dependency("rake", ">= 12.3.3")
38
+ spec.add_development_dependency("sqlite3")
38
39
 
39
- spec.add_development_dependency "ruby_jard"
40
+ spec.add_development_dependency("rubocop-shopify")
41
+ spec.add_development_dependency("ruby_jard")
40
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stubberry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alekseyl
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -53,21 +67,21 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: 12.3.3
55
69
  - !ruby/object:Gem::Dependency
56
- name: minitest
70
+ name: sqlite3
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: '5.0'
75
+ version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: '5.0'
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: sqlite3
84
+ name: rubocop-shopify
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - ">="
@@ -104,6 +118,7 @@ extensions: []
104
118
  extra_rdoc_files: []
105
119
  files:
106
120
  - ".gitignore"
121
+ - ".rubocop.yml"
107
122
  - ".travis.yml"
108
123
  - CHANGELOG.md
109
124
  - CODE_OF_CONDUCT.md
@@ -142,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
157
  - !ruby/object:Gem::Version
143
158
  version: '0'
144
159
  requirements: []
145
- rubygems_version: 3.1.4
160
+ rubygems_version: 3.2.15
146
161
  signing_key:
147
162
  specification_version: 4
148
163
  summary: Ultimate collection of sweet stub methods for ruby test suits. Lets stub!