clean-mock 0.2.1 → 0.2.3

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: 0ef46731065dc64d8b4693482cabedf30650561bf3ef726886d4b8d8f6aa8c4a
4
- data.tar.gz: 9b07173f468c2932ac66c902828d361f62be763e890dd763016ab3e2cf3e90c6
3
+ metadata.gz: 97bf620be942c852cdb6816f98fdf633c4f64c27936df6d3ec7b6968699cc606
4
+ data.tar.gz: f97f714761ed44e115b62ffbeca3e90161a2ea802b82faea6e66aa1f7680c9df
5
5
  SHA512:
6
- metadata.gz: 16805d8daaff646c8d11d8aca917a8a98d2534722c18e2cfd668b751ce7f01cbff5b0b664317791e493a0ea5553898617cad8c39421c6abde8dcb375d886b429
7
- data.tar.gz: babd325c608a220186940844e573852bb354cb40d1c4c11ee105f02af6130e4b50f25bde8c22cab1ead7d8d6a5f500f448afa19e92fe2bc68d4d9cb4fa62e943
6
+ metadata.gz: 4e80b5a3ae5d341e1d97901016e2330e2261fec2ea09712afcd9ac8991d4e1d614df212cd5165ad65902f52fa1e88d064e3d40f3a9d31b6a7e0a530d5e33e840
7
+ data.tar.gz: 4bdd8671d9a6b7010f2528e9dcdf94f1024aa1480f04e16ffaf72b84d1a71500ee56ab61fba77c9e3fb18d2fc1268e9f8479fc15ab89a7603c6208098e36f825
data/.version CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.3
@@ -1,13 +1,14 @@
1
1
  class CleanMock
2
+ VERSION ||= File.read(File.expand_path('../../.version', __dir__)).strip
3
+
2
4
  attr_reader :model
3
5
 
4
6
  @@fetched ||= {}
5
7
  @@mock_data ||= {}
6
8
  @@sequence ||= {}
7
- @@classes ||= {}
8
9
 
9
10
  class << self
10
- # defined mocked model
11
+ # define a mocked model factory
11
12
  def define name, opts={}, &block
12
13
  @@mock_data[name] = [block, opts]
13
14
  end
@@ -26,10 +27,9 @@ class CleanMock
26
27
  new(*args).create_mock
27
28
  end
28
29
 
29
- # create only once
30
+ # create only once - cached on args identity
30
31
  def fetch *args, &block
31
- code = Digest::SHA1.hexdigest(args.to_s)
32
- @@fetched[code] ||= create(*args, &block)
32
+ @@fetched[args] ||= create(*args, &block)
33
33
  end
34
34
  end
35
35
 
@@ -40,14 +40,17 @@ class CleanMock
40
40
  @kind = args.shift
41
41
  @traits = args
42
42
 
43
- block, mock_opts = @@mock_data[@kind] || raise(ArgumentError, 'Mock model "%s" not defined' % @kind)
43
+ block, mock_opts = @@mock_data[@kind] || raise(
44
+ ArgumentError,
45
+ 'Mock model "%s" not defined. Known: %s' % [@kind, @@mock_data.keys.join(', ')]
46
+ )
44
47
 
45
48
  @model =
46
49
  case mock_opts[:class]
47
- when FalseClass
50
+ when false
48
51
  # define :foo, class: false
49
52
  nil
50
- when NilClass
53
+ when nil
51
54
  # define :foo
52
55
  @kind.to_s.classify.constantize.new
53
56
  when Symbol
@@ -80,7 +83,7 @@ class CleanMock
80
83
  end
81
84
  end
82
85
 
83
- # define or overlod current instance method
86
+ # define or overload current instance method
84
87
  def func name, &block
85
88
  @model.define_singleton_method(name, &block)
86
89
  end
@@ -103,13 +106,13 @@ class CleanMock
103
106
 
104
107
  def create_mock
105
108
  @model.save if @model.respond_to?(:save)
106
- @after_save.call if @after_save
109
+ @after_create.call if @after_create
107
110
  @model
108
111
  end
109
112
 
110
- def after_save &block
111
- @after_save = block
113
+ # callback fired after `create` / `fetch` saves the model (not on `build`)
114
+ def after_create &block
115
+ @after_create = block
112
116
  end
113
- alias :after_create :after_save
114
117
 
115
118
  end
@@ -8,7 +8,7 @@
8
8
  unless respond_to?(:mock)
9
9
  Object.class_eval do
10
10
  def mock *args, &block
11
- if args.first
11
+ if !args.empty?
12
12
  CleanMock.define *args, &block
13
13
  elsif block_given?
14
14
  CleanMock.instance_exec &block
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clean-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-08-05 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: Clean and efficient ruby testing object creation helper/mocking library
14
13
  with interface similar to FactoryBot
@@ -25,7 +24,6 @@ homepage: https://github.com/dux/clean-mock
25
24
  licenses:
26
25
  - MIT
27
26
  metadata: {}
28
- post_install_message:
29
27
  rdoc_options: []
30
28
  require_paths:
31
29
  - lib
@@ -40,8 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
38
  - !ruby/object:Gem::Version
41
39
  version: '0'
42
40
  requirements: []
43
- rubygems_version: 3.2.3
44
- signing_key:
41
+ rubygems_version: 4.0.11
45
42
  specification_version: 4
46
43
  summary: Ruby object creation helper/mocking lib used for testing.
47
44
  test_files: []