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

Sign up to get free protection for your applications and to get access to all the features.
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