eac_rails_gem_support 0.4.1 → 0.6.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: c2d27c9e93e9f57c4fbbda5273500380a91a06a3023131841d081faebd62f51c
4
- data.tar.gz: 62e24d1ea6d28f56920adcd043c3ec21ed0598389e3301f9be6b981a00c3a813
3
+ metadata.gz: 2d285679a888e05aa97fb48708eb226ea50c113a99ad4e18b394be4f1c28bc41
4
+ data.tar.gz: 7a58f04b0049e2ce31abb0a9bd4d3cfb12ea9416197aae33cc9881a454eeb06e
5
5
  SHA512:
6
- metadata.gz: e1e0d339d245a463eaa995179b230333e4c5097abbe1f9e50764649155c45f9e744ee4edfda1ff1d3a5d07c0b74c21dbed6f786f821a7ca6d68904548b35af16
7
- data.tar.gz: 6a7c4fcd80333110416a5e1767aac16fc9b037ca2270d6f8d7f49be94d8890927cf1239ccf5c31cafc84d1a74b2f290e8d4d69f9937f5731c203e2863f1721bd
6
+ metadata.gz: 8800c2b55b5310b90116679ef19525309dbb7eeee653c647260d2ee921f99022d7c412d76f25fa7135951f981017b432ea8531608a7f00c12baedca69cbc5874
7
+ data.tar.gz: b4d526791901f0d834749aac2db43f391ffd6404a3ef72b37adebfae7d7e9a59a88274db6bb4ee6e82d5344c4058adca076f29ac5a43187a1ab39e7359e70744
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacRailsGemSupport
6
+ module FactoryBot
7
+ class InstanceRegistry
8
+ class << self
9
+ def default
10
+ @default ||= ::EacRailsGemSupport::FactoryBot::InstanceRegistry.new
11
+ end
12
+
13
+ delegate :fetch, :reset, to: :default
14
+
15
+ def sanitize_key(key)
16
+ key.to_sym
17
+ end
18
+ end
19
+
20
+ def fetch(key)
21
+ key = self.class.sanitize_key(key)
22
+ if fetched.key?(key)
23
+ fetched.fetch(key)
24
+ else
25
+ fetched[key] = ::FactoryBot.create(key)
26
+ end
27
+ end
28
+
29
+ def reset
30
+ @fetched = nil
31
+ end
32
+
33
+ private
34
+
35
+ def fetched
36
+ @fetched ||= {}
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rails_gem_support/patches/object/template'
4
3
  require 'avm/eac_ruby_base1/sources/base'
5
4
  require 'eac_ruby_utils/core_ext'
5
+ require 'eac_templates/core_ext'
6
6
  require 'fileutils'
7
7
 
8
8
  module EacRailsGemSupport
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsGemSupport
4
+ module Rspec
5
+ module MinitestSupport
6
+ def assert_difference(code, message = nil, compare_method = :not_to, &block)
7
+ before_value = assert_difference_call(code)
8
+ block.call
9
+ after_value = assert_difference_call(code)
10
+ expect(after_value).send(compare_method, eq(before_value), message)
11
+ end
12
+
13
+ def assert_no_difference(code, message = nil, &block)
14
+ assert_difference(code, message, :to, &block)
15
+ end
16
+
17
+ def assert_equal(expected_value, actual_value, message = nil)
18
+ expect(actual_value).to eq(expected_value), message
19
+ end
20
+
21
+ def assert_not(expected_value, message = nil)
22
+ expect(expected_value).to be_falsy, message
23
+ end
24
+
25
+ def assert_not_equal(expected_value, actual_value, message = nil)
26
+ expect(actual_value).not_to eq(expected_value), message
27
+ end
28
+
29
+ private
30
+
31
+ def assert_difference_call(code)
32
+ if code.is_a?(::Proc)
33
+ code.call
34
+ elsif code.is_a?(::String)
35
+ eval(code) # rubocop:disable Security/Eval
36
+ else
37
+ raise "Unmapped type for \"#{code}\""
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
+ require 'eac_rails_gem_support/factory_bot/instance_registry'
4
5
 
5
6
  module EacRailsGemSupport
6
7
  module Rspec
@@ -10,6 +11,14 @@ module EacRailsGemSupport
10
11
  require 'factory_bot_rails'
11
12
  rspec_config.include ::FactoryBot::Syntax::Methods
12
13
  Spring.after_fork { ::FactoryBot.reload } if defined?(Spring)
14
+ rspec_config.include HelpMethods
15
+ rspec_config.after { ::EacRailsGemSupport::FactoryBot::InstanceRegistry.reset }
16
+ end
17
+
18
+ module HelpMethods
19
+ def factory_bot_fetch(key)
20
+ ::EacRailsGemSupport::FactoryBot::InstanceRegistry.fetch(key)
21
+ end
13
22
  end
14
23
  end
15
24
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_rails_gem_support/rspec/minitest_support'
3
4
  require 'eac_ruby_utils/core_ext'
4
5
 
5
6
  module EacRailsGemSupport
@@ -9,13 +10,18 @@ module EacRailsGemSupport
9
10
  require_sub __FILE__, include_modules: true
10
11
 
11
12
  def self.extended(obj)
13
+ obj.setup_minitest_support
12
14
  obj.singleton_class.include(::EacRubyUtils::SimpleCache)
13
15
  obj.setup_rails_env
14
16
  return unless obj.setup_rails_app
15
17
 
16
- obj.setup_fixtures
17
- obj.setup_capybara
18
- obj.setup_factory_bot
18
+ %w[fixtures capybara factory_bot].each do |item|
19
+ obj.send("setup_#{item}")
20
+ end
21
+ end
22
+
23
+ def setup_minitest_support
24
+ rspec_config.include ::EacRailsGemSupport::Rspec::MinitestSupport
19
25
  end
20
26
  end
21
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRailsGemSupport
4
- VERSION = '0.4.1'
4
+ VERSION = '0.6.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_rails_gem_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-05 00:00:00.000000000 Z
11
+ date: 2022-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-eac_ruby_base1
@@ -16,33 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.8'
19
+ version: '0.21'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.8'
26
+ version: '0.21'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capybara
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.37'
31
34
  - - ">="
32
35
  - !ruby/object:Gem::Version
33
- version: '0'
36
+ version: 3.37.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.37'
38
44
  - - ">="
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: 3.37.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: eac_ruby_gem_support
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.5'
54
+ - - ">="
46
55
  - !ruby/object:Gem::Version
47
56
  version: 0.5.1
48
57
  type: :runtime
@@ -50,6 +59,9 @@ dependencies:
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
61
  - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.5'
64
+ - - ">="
53
65
  - !ruby/object:Gem::Version
54
66
  version: 0.5.1
55
67
  - !ruby/object:Gem::Dependency
@@ -58,20 +70,14 @@ dependencies:
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '0.95'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 0.95.1
73
+ version: '0.104'
65
74
  type: :runtime
66
75
  prerelease: false
67
76
  version_requirements: !ruby/object:Gem::Requirement
68
77
  requirements:
69
78
  - - "~>"
70
79
  - !ruby/object:Gem::Version
71
- version: '0.95'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 0.95.1
80
+ version: '0.104'
75
81
  - !ruby/object:Gem::Dependency
76
82
  name: eac_templates
77
83
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +87,7 @@ dependencies:
81
87
  version: '0.3'
82
88
  - - ">="
83
89
  - !ruby/object:Gem::Version
84
- version: 0.3.1
90
+ version: 0.3.2
85
91
  type: :runtime
86
92
  prerelease: false
87
93
  version_requirements: !ruby/object:Gem::Requirement
@@ -91,21 +97,21 @@ dependencies:
91
97
  version: '0.3'
92
98
  - - ">="
93
99
  - !ruby/object:Gem::Version
94
- version: 0.3.1
100
+ version: 0.3.2
95
101
  - !ruby/object:Gem::Dependency
96
102
  name: factory_bot_rails
97
103
  requirement: !ruby/object:Gem::Requirement
98
104
  requirements:
99
- - - ">="
105
+ - - "~>"
100
106
  - !ruby/object:Gem::Version
101
- version: '0'
107
+ version: '6.2'
102
108
  type: :runtime
103
109
  prerelease: false
104
110
  version_requirements: !ruby/object:Gem::Requirement
105
111
  requirements:
106
- - - ">="
112
+ - - "~>"
107
113
  - !ruby/object:Gem::Version
108
- version: '0'
114
+ version: '6.2'
109
115
  - !ruby/object:Gem::Dependency
110
116
  name: rails
111
117
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +119,9 @@ dependencies:
113
119
  - - "~>"
114
120
  - !ruby/object:Gem::Version
115
121
  version: 5.2.8
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 5.2.8.1
116
125
  type: :runtime
117
126
  prerelease: false
118
127
  version_requirements: !ruby/object:Gem::Requirement
@@ -120,34 +129,43 @@ dependencies:
120
129
  - - "~>"
121
130
  - !ruby/object:Gem::Version
122
131
  version: 5.2.8
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 5.2.8.1
123
135
  - !ruby/object:Gem::Dependency
124
136
  name: rspec-rails
125
137
  requirement: !ruby/object:Gem::Requirement
126
138
  requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '5.1'
127
142
  - - ">="
128
143
  - !ruby/object:Gem::Version
129
- version: '0'
144
+ version: 5.1.2
130
145
  type: :runtime
131
146
  prerelease: false
132
147
  version_requirements: !ruby/object:Gem::Requirement
133
148
  requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '5.1'
134
152
  - - ">="
135
153
  - !ruby/object:Gem::Version
136
- version: '0'
154
+ version: 5.1.2
137
155
  - !ruby/object:Gem::Dependency
138
156
  name: sqlite3
139
157
  requirement: !ruby/object:Gem::Requirement
140
158
  requirements:
141
- - - ">="
159
+ - - "~>"
142
160
  - !ruby/object:Gem::Version
143
- version: '0'
161
+ version: '1.5'
144
162
  type: :runtime
145
163
  prerelease: false
146
164
  version_requirements: !ruby/object:Gem::Requirement
147
165
  requirements:
148
- - - ">="
166
+ - - "~>"
149
167
  - !ruby/object:Gem::Version
150
- version: '0'
168
+ version: '1.5'
151
169
  description:
152
170
  email:
153
171
  executables: []
@@ -155,10 +173,10 @@ extensions: []
155
173
  extra_rdoc_files: []
156
174
  files:
157
175
  - lib/eac_rails_gem_support.rb
158
- - lib/eac_rails_gem_support/patches/object.rb
159
- - lib/eac_rails_gem_support/patches/object/template.rb
176
+ - lib/eac_rails_gem_support/factory_bot/instance_registry.rb
160
177
  - lib/eac_rails_gem_support/rspec.rb
161
178
  - lib/eac_rails_gem_support/rspec/appendable_rails_app.rb
179
+ - lib/eac_rails_gem_support/rspec/minitest_support.rb
162
180
  - lib/eac_rails_gem_support/rspec/setup.rb
163
181
  - lib/eac_rails_gem_support/rspec/setup/capybara.rb
164
182
  - lib/eac_rails_gem_support/rspec/setup/factory_bot.rb
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/patches/object/template'
4
-
5
- ::EacTemplates::Searcher.default.included_paths <<
6
- ::File.expand_path('../../../../template', __dir__)
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- require_sub __FILE__