stubberry 0.2.0 → 0.3.0

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.
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!