interactify 0.2.0.pre.alpha.1 → 0.3.0.pre.RC1

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.
data/lib/interactify.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "interactor"
4
4
  require "interactor-contracts"
5
- require "rails"
6
5
  require "active_support/all"
7
6
 
8
7
  require "interactify/version"
@@ -11,6 +10,52 @@ require "interactify/dsl"
11
10
  require "interactify/interactor_wiring"
12
11
  require "interactify/promising"
13
12
 
13
+ module Interactify
14
+ def self.railties_missing?
15
+ @railties_missing
16
+ end
17
+
18
+ def self.railties_missing!
19
+ @railties_missing = true
20
+ end
21
+
22
+ def self.railties
23
+ railties?
24
+ end
25
+
26
+ def self.railties?
27
+ !railties_missing?
28
+ end
29
+
30
+ def self.sidekiq_missing?
31
+ @sidekiq_missing
32
+ end
33
+
34
+ def self.sidekiq_missing!
35
+ @sidekiq_missing = true
36
+ end
37
+
38
+ def self.sidekiq
39
+ sidekiq?
40
+ end
41
+
42
+ def self.sidekiq?
43
+ !sidekiq_missing?
44
+ end
45
+ end
46
+
47
+ begin
48
+ require "sidekiq"
49
+ rescue LoadError
50
+ Interactify.sidekiq_missing!
51
+ end
52
+
53
+ begin
54
+ require 'rails/railtie'
55
+ rescue LoadError
56
+ Interactify.railties_missing!
57
+ end
58
+
14
59
  module Interactify
15
60
  extend ActiveSupport::Concern
16
61
 
@@ -19,6 +64,14 @@ module Interactify
19
64
  Interactify::InteractorWiring.new(root: Interactify.configuration.root, ignore:).validate_app
20
65
  end
21
66
 
67
+ def sidekiq_missing?
68
+ @sidekiq_missing
69
+ end
70
+
71
+ def sidekiq_missing!
72
+ @sidekiq_missing = true
73
+ end
74
+
22
75
  def reset
23
76
  @on_contract_breach = nil
24
77
  @before_raise_hook = nil
@@ -109,7 +162,11 @@ module Interactify
109
162
  attr_writer :root
110
163
 
111
164
  def root
112
- @root ||= Rails.root / "app"
165
+ @root ||= fallback
166
+ end
167
+
168
+ def fallback
169
+ Rails.root / "app" if Interactify.railties?
113
170
  end
114
171
  end
115
172
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interactify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre.alpha.1
4
+ version: 0.3.0.pre.RC1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Burns
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-27 00:00:00.000000000 Z
11
+ date: 2023-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: interactor
@@ -39,33 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rails
42
+ name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 6.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: sidekiq
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 6.0.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: debug
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: deep_matching
70
+ name: appraisal
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -110,10 +96,25 @@ extra_rdoc_files: []
110
96
  files:
111
97
  - ".rspec"
112
98
  - ".rubocop.yml"
99
+ - ".ruby-version"
100
+ - Appraisals
113
101
  - CHANGELOG.md
114
102
  - LICENSE.txt
115
103
  - README.md
116
104
  - Rakefile
105
+ - gemfiles/.bundle/config
106
+ - gemfiles/no_railties_no_sidekiq.gemfile
107
+ - gemfiles/no_railties_no_sidekiq.gemfile.lock
108
+ - gemfiles/railties_6.gemfile
109
+ - gemfiles/railties_6.gemfile.lock
110
+ - gemfiles/railties_6_no_sidekiq.gemfile
111
+ - gemfiles/railties_6_no_sidekiq.gemfile.lock
112
+ - gemfiles/railties_6_sidekiq.gemfile
113
+ - gemfiles/railties_6_sidekiq.gemfile.lock
114
+ - gemfiles/railties_7_no_sidekiq.gemfile
115
+ - gemfiles/railties_7_no_sidekiq.gemfile.lock
116
+ - gemfiles/railties_7_sidekiq.gemfile
117
+ - gemfiles/railties_7_sidekiq.gemfile.lock
117
118
  - lib/interactify.rb
118
119
  - lib/interactify/async_job_klass.rb
119
120
  - lib/interactify/call_wrapper.rb
@@ -127,12 +128,15 @@ files:
127
128
  - lib/interactify/interactor_wiring/constants.rb
128
129
  - lib/interactify/interactor_wiring/error_context.rb
129
130
  - lib/interactify/interactor_wiring/files.rb
131
+ - lib/interactify/interactor_wrapper.rb
130
132
  - lib/interactify/job_maker.rb
131
133
  - lib/interactify/jobable.rb
132
134
  - lib/interactify/mismatching_promise_error.rb
133
- - lib/interactify/organizer_call_monkey_patch.rb
135
+ - lib/interactify/null_job.rb
136
+ - lib/interactify/organizer.rb
134
137
  - lib/interactify/promising.rb
135
138
  - lib/interactify/rspec/matchers.rb
139
+ - lib/interactify/unique_klass_name.rb
136
140
  - lib/interactify/version.rb
137
141
  - sig/interactify.rbs
138
142
  homepage: https://github.com/markburns/interactify
@@ -152,14 +156,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
156
  requirements:
153
157
  - - ">="
154
158
  - !ruby/object:Gem::Version
155
- version: '3.2'
159
+ version: 2.7.8
156
160
  required_rubygems_version: !ruby/object:Gem::Requirement
157
161
  requirements:
158
162
  - - ">"
159
163
  - !ruby/object:Gem::Version
160
164
  version: 1.3.1
161
165
  requirements: []
162
- rubygems_version: 3.4.19
166
+ rubygems_version: 3.3.26
163
167
  signing_key:
164
168
  specification_version: 4
165
169
  summary: Interactors with bells and whistles