external_services 0.5.2 → 0.5.4

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: 775d9bffa419443c5e619e42251efc2f4630c38dab5cc529bc32ddc9e0b5a31b
4
- data.tar.gz: 5523b20fe8762beaa1ad171af70813bb6121a85a0e084d6bc7ffcb8ea21954bf
3
+ metadata.gz: '08f5895f6fa74286ed5c60a14c9840aa765bbf4179070311293ca8aca9cdc5b7'
4
+ data.tar.gz: 8ebfb1bd40b695f3039e692ea02546e9ff60b729a25aa0869f51c120e8ed2953
5
5
  SHA512:
6
- metadata.gz: 18324cc039c27f5d40e2a1c495d6f16aba12796a0aecfb0de24aaffe7cd6c29cba8df075bb9287441dbd826ef51b6b47307aafef937ad267dcee9afbfa987e16
7
- data.tar.gz: 716d55932c3091c8f47df1e2643485d53da409e39f5d22b729be535b51da20dd08ebbc8fb7a53bc7ac05a80bc4c71e8e02e02076ae91abcefc2bca9db1c7de98
6
+ metadata.gz: 988c94bd9e499f7c611f41e3d76ae763c95959d414639b990921d71b6a17f58beb167319f797425200e42aecb0da9c325787c5155589b5e5c93993acde16c134
7
+ data.tar.gz: bc1dbcff05bc31f0cebc4cb85c703e487bdea514a2c8a21fd79677ce70eb07e0d6ef1044642a09e30e1b1eeb028cf39b1d6b724f844636f99b31248a26feb281
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.2
2
+ TargetRubyVersion: 2.7
3
3
  Exclude:
4
4
  - 'lib/generators/templates/**/*'
5
5
  - 'spec/dummy/**/*'
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 external_services.gemspec
@@ -6,10 +8,10 @@ gemspec
6
8
  gem 'rake', '~> 13.0'
7
9
  gem 'sqlite3'
8
10
 
11
+ gem 'net-smtp', require: false # HACK: for pre 7.0.1 rails and 3.1 ruby
9
12
  gem 'overcommit'
10
13
  gem 'rubocop', '~> 1.0', require: false
11
14
  gem 'rubocop-rspec'
12
- gem 'net-smtp', require: false # hack for pre 7.0.1 rails and 3.1 ruby
13
15
 
14
16
  gem 'pry', '>= 0.14'
15
17
  gem 'pry-rails', '~> 0.3.9'
data/Gemfile.lock CHANGED
@@ -1,84 +1,102 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- external_services (0.5.2)
4
+ external_services (0.5.4)
5
5
  faraday (>= 1.4, < 2)
6
6
  faraday_middleware (>= 1.0, < 2)
7
- rails (>= 4.2.5, < 7.1)
7
+ rails (>= 4.2.5, < 8)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actioncable (6.1.6.1)
13
- actionpack (= 6.1.6.1)
14
- activesupport (= 6.1.6.1)
12
+ actioncable (7.1.3.3)
13
+ actionpack (= 7.1.3.3)
14
+ activesupport (= 7.1.3.3)
15
15
  nio4r (~> 2.0)
16
16
  websocket-driver (>= 0.6.1)
17
- actionmailbox (6.1.6.1)
18
- actionpack (= 6.1.6.1)
19
- activejob (= 6.1.6.1)
20
- activerecord (= 6.1.6.1)
21
- activestorage (= 6.1.6.1)
22
- activesupport (= 6.1.6.1)
17
+ zeitwerk (~> 2.6)
18
+ actionmailbox (7.1.3.3)
19
+ actionpack (= 7.1.3.3)
20
+ activejob (= 7.1.3.3)
21
+ activerecord (= 7.1.3.3)
22
+ activestorage (= 7.1.3.3)
23
+ activesupport (= 7.1.3.3)
23
24
  mail (>= 2.7.1)
24
- actionmailer (6.1.6.1)
25
- actionpack (= 6.1.6.1)
26
- actionview (= 6.1.6.1)
27
- activejob (= 6.1.6.1)
28
- activesupport (= 6.1.6.1)
25
+ net-imap
26
+ net-pop
27
+ net-smtp
28
+ actionmailer (7.1.3.3)
29
+ actionpack (= 7.1.3.3)
30
+ actionview (= 7.1.3.3)
31
+ activejob (= 7.1.3.3)
32
+ activesupport (= 7.1.3.3)
29
33
  mail (~> 2.5, >= 2.5.4)
30
- rails-dom-testing (~> 2.0)
31
- actionpack (6.1.6.1)
32
- actionview (= 6.1.6.1)
33
- activesupport (= 6.1.6.1)
34
- rack (~> 2.0, >= 2.0.9)
34
+ net-imap
35
+ net-pop
36
+ net-smtp
37
+ rails-dom-testing (~> 2.2)
38
+ actionpack (7.1.3.3)
39
+ actionview (= 7.1.3.3)
40
+ activesupport (= 7.1.3.3)
41
+ nokogiri (>= 1.8.5)
42
+ racc
43
+ rack (>= 2.2.4)
44
+ rack-session (>= 1.0.1)
35
45
  rack-test (>= 0.6.3)
36
- rails-dom-testing (~> 2.0)
37
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
38
- actiontext (6.1.6.1)
39
- actionpack (= 6.1.6.1)
40
- activerecord (= 6.1.6.1)
41
- activestorage (= 6.1.6.1)
42
- activesupport (= 6.1.6.1)
46
+ rails-dom-testing (~> 2.2)
47
+ rails-html-sanitizer (~> 1.6)
48
+ actiontext (7.1.3.3)
49
+ actionpack (= 7.1.3.3)
50
+ activerecord (= 7.1.3.3)
51
+ activestorage (= 7.1.3.3)
52
+ activesupport (= 7.1.3.3)
53
+ globalid (>= 0.6.0)
43
54
  nokogiri (>= 1.8.5)
44
- actionview (6.1.6.1)
45
- activesupport (= 6.1.6.1)
55
+ actionview (7.1.3.3)
56
+ activesupport (= 7.1.3.3)
46
57
  builder (~> 3.1)
47
- erubi (~> 1.4)
48
- rails-dom-testing (~> 2.0)
49
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
50
- activejob (6.1.6.1)
51
- activesupport (= 6.1.6.1)
58
+ erubi (~> 1.11)
59
+ rails-dom-testing (~> 2.2)
60
+ rails-html-sanitizer (~> 1.6)
61
+ activejob (7.1.3.3)
62
+ activesupport (= 7.1.3.3)
52
63
  globalid (>= 0.3.6)
53
- activemodel (6.1.6.1)
54
- activesupport (= 6.1.6.1)
55
- activerecord (6.1.6.1)
56
- activemodel (= 6.1.6.1)
57
- activesupport (= 6.1.6.1)
58
- activestorage (6.1.6.1)
59
- actionpack (= 6.1.6.1)
60
- activejob (= 6.1.6.1)
61
- activerecord (= 6.1.6.1)
62
- activesupport (= 6.1.6.1)
64
+ activemodel (7.1.3.3)
65
+ activesupport (= 7.1.3.3)
66
+ activerecord (7.1.3.3)
67
+ activemodel (= 7.1.3.3)
68
+ activesupport (= 7.1.3.3)
69
+ timeout (>= 0.4.0)
70
+ activestorage (7.1.3.3)
71
+ actionpack (= 7.1.3.3)
72
+ activejob (= 7.1.3.3)
73
+ activerecord (= 7.1.3.3)
74
+ activesupport (= 7.1.3.3)
63
75
  marcel (~> 1.0)
64
- mini_mime (>= 1.1.0)
65
- activesupport (6.1.6.1)
76
+ activesupport (7.1.3.3)
77
+ base64
78
+ bigdecimal
66
79
  concurrent-ruby (~> 1.0, >= 1.0.2)
80
+ connection_pool (>= 2.2.5)
81
+ drb
67
82
  i18n (>= 1.6, < 2)
68
83
  minitest (>= 5.1)
84
+ mutex_m
69
85
  tzinfo (~> 2.0)
70
- zeitwerk (~> 2.3)
71
86
  ast (2.4.2)
87
+ base64 (0.2.0)
88
+ bigdecimal (3.1.8)
72
89
  builder (3.2.4)
73
90
  childprocess (0.9.0)
74
91
  ffi (~> 1.0, >= 1.0.11)
75
92
  coderay (1.1.3)
76
- concurrent-ruby (1.1.10)
93
+ concurrent-ruby (1.2.3)
94
+ connection_pool (2.4.1)
77
95
  crass (1.0.6)
78
- date (3.3.3)
96
+ date (3.3.4)
79
97
  diff-lcs (1.4.4)
80
- digest (3.1.0)
81
- erubi (1.10.0)
98
+ drb (2.2.1)
99
+ erubi (1.12.0)
82
100
  factory_bot (4.11.1)
83
101
  activesupport (>= 3.0.0)
84
102
  factory_bot_rails (4.11.1)
@@ -110,39 +128,42 @@ GEM
110
128
  faraday_middleware (1.2.0)
111
129
  faraday (~> 1.0)
112
130
  ffi (1.15.5)
113
- globalid (1.1.0)
114
- activesupport (>= 5.0)
115
- i18n (1.11.0)
131
+ globalid (1.2.1)
132
+ activesupport (>= 6.1)
133
+ i18n (1.14.5)
116
134
  concurrent-ruby (~> 1.0)
117
135
  iniparse (1.4.4)
118
- loofah (2.18.0)
136
+ io-console (0.7.2)
137
+ irb (1.13.1)
138
+ rdoc (>= 4.0.0)
139
+ reline (>= 0.4.2)
140
+ loofah (2.22.0)
119
141
  crass (~> 1.0.2)
120
- nokogiri (>= 1.5.9)
142
+ nokogiri (>= 1.12.0)
121
143
  mail (2.8.1)
122
144
  mini_mime (>= 0.1.1)
123
145
  net-imap
124
146
  net-pop
125
147
  net-smtp
126
- marcel (1.0.2)
127
- method_source (1.0.0)
128
- mini_mime (1.1.2)
129
- mini_portile2 (2.8.0)
130
- minitest (5.16.2)
148
+ marcel (1.0.4)
149
+ method_source (1.1.0)
150
+ mini_mime (1.1.5)
151
+ mini_portile2 (2.8.6)
152
+ minitest (5.23.1)
131
153
  multipart-post (2.3.0)
132
- net-imap (0.3.7)
154
+ mutex_m (0.2.0)
155
+ net-imap (0.4.11)
133
156
  date
134
157
  net-protocol
135
158
  net-pop (0.1.2)
136
159
  net-protocol
137
- net-protocol (0.1.3)
160
+ net-protocol (0.2.2)
138
161
  timeout
139
- net-smtp (0.3.1)
140
- digest
162
+ net-smtp (0.5.0)
141
163
  net-protocol
142
- timeout
143
- nio4r (2.5.9)
144
- nokogiri (1.13.7)
145
- mini_portile2 (~> 2.8.0)
164
+ nio4r (2.7.3)
165
+ nokogiri (1.16.5)
166
+ mini_portile2 (~> 2.8.2)
146
167
  racc (~> 1.4)
147
168
  overcommit (0.46.0)
148
169
  childprocess (~> 0.6, >= 0.6.3)
@@ -155,39 +176,53 @@ GEM
155
176
  method_source (~> 1.0)
156
177
  pry-rails (0.3.9)
157
178
  pry (>= 0.10.4)
158
- racc (1.6.0)
159
- rack (2.2.6.3)
160
- rack-test (2.0.2)
179
+ psych (5.1.2)
180
+ stringio
181
+ racc (1.8.0)
182
+ rack (3.0.11)
183
+ rack-session (2.0.0)
184
+ rack (>= 3.0.0)
185
+ rack-test (2.1.0)
161
186
  rack (>= 1.3)
162
- rails (6.1.6.1)
163
- actioncable (= 6.1.6.1)
164
- actionmailbox (= 6.1.6.1)
165
- actionmailer (= 6.1.6.1)
166
- actionpack (= 6.1.6.1)
167
- actiontext (= 6.1.6.1)
168
- actionview (= 6.1.6.1)
169
- activejob (= 6.1.6.1)
170
- activemodel (= 6.1.6.1)
171
- activerecord (= 6.1.6.1)
172
- activestorage (= 6.1.6.1)
173
- activesupport (= 6.1.6.1)
187
+ rackup (2.1.0)
188
+ rack (>= 3)
189
+ webrick (~> 1.8)
190
+ rails (7.1.3.3)
191
+ actioncable (= 7.1.3.3)
192
+ actionmailbox (= 7.1.3.3)
193
+ actionmailer (= 7.1.3.3)
194
+ actionpack (= 7.1.3.3)
195
+ actiontext (= 7.1.3.3)
196
+ actionview (= 7.1.3.3)
197
+ activejob (= 7.1.3.3)
198
+ activemodel (= 7.1.3.3)
199
+ activerecord (= 7.1.3.3)
200
+ activestorage (= 7.1.3.3)
201
+ activesupport (= 7.1.3.3)
174
202
  bundler (>= 1.15.0)
175
- railties (= 6.1.6.1)
176
- sprockets-rails (>= 2.0.0)
177
- rails-dom-testing (2.0.3)
178
- activesupport (>= 4.2.0)
203
+ railties (= 7.1.3.3)
204
+ rails-dom-testing (2.2.0)
205
+ activesupport (>= 5.0.0)
206
+ minitest
179
207
  nokogiri (>= 1.6)
180
- rails-html-sanitizer (1.4.3)
181
- loofah (~> 2.3)
182
- railties (6.1.6.1)
183
- actionpack (= 6.1.6.1)
184
- activesupport (= 6.1.6.1)
185
- method_source
208
+ rails-html-sanitizer (1.6.0)
209
+ loofah (~> 2.21)
210
+ nokogiri (~> 1.14)
211
+ railties (7.1.3.3)
212
+ actionpack (= 7.1.3.3)
213
+ activesupport (= 7.1.3.3)
214
+ irb
215
+ rackup (>= 1.0.0)
186
216
  rake (>= 12.2)
187
- thor (~> 1.0)
217
+ thor (~> 1.0, >= 1.2.2)
218
+ zeitwerk (~> 2.6)
188
219
  rainbow (3.1.1)
189
- rake (13.0.3)
220
+ rake (13.2.1)
221
+ rdoc (6.6.3.1)
222
+ psych (>= 4.0.0)
190
223
  regexp_parser (2.4.0)
224
+ reline (0.5.7)
225
+ io-console (~> 0.5)
191
226
  rexml (3.2.5)
192
227
  rspec-core (3.10.1)
193
228
  rspec-support (~> 3.10.0)
@@ -221,23 +256,18 @@ GEM
221
256
  rubocop (>= 0.58.0)
222
257
  ruby-progressbar (1.11.0)
223
258
  ruby2_keywords (0.0.5)
224
- sprockets (4.2.0)
225
- concurrent-ruby (~> 1.0)
226
- rack (>= 2.2.4, < 4)
227
- sprockets-rails (3.4.2)
228
- actionpack (>= 5.2)
229
- activesupport (>= 5.2)
230
- sprockets (>= 3.0.0)
231
259
  sqlite3 (1.4.2)
232
- thor (1.2.1)
233
- timeout (0.2.0)
234
- tzinfo (2.0.4)
260
+ stringio (3.1.0)
261
+ thor (1.3.1)
262
+ timeout (0.4.1)
263
+ tzinfo (2.0.6)
235
264
  concurrent-ruby (~> 1.0)
236
265
  unicode-display_width (2.1.0)
266
+ webrick (1.8.1)
237
267
  websocket-driver (0.7.6)
238
268
  websocket-extensions (>= 0.1.0)
239
269
  websocket-extensions (0.1.5)
240
- zeitwerk (2.6.0)
270
+ zeitwerk (2.6.14)
241
271
 
242
272
  PLATFORMS
243
273
  ruby
@@ -256,4 +286,4 @@ DEPENDENCIES
256
286
  sqlite3
257
287
 
258
288
  BUNDLED WITH
259
- 2.3.14
289
+ 2.5.9
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require 'bundler/setup'
3
5
  rescue LoadError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  class ApiJob < ActiveJob::Base
3
5
  queue_as :default
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  module Action
3
5
  extend ActiveSupport::Concern
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  class ApiAction < ::ActiveRecord::Base
3
5
  include ExternalServices::Action
4
6
 
5
- MAX_ACTION_AGE = ENV.fetch('EXTERNAL_SERVICES_MAX_ACTION_AGE') { '90' }.to_i.days
7
+ MAX_ACTION_AGE = ENV.fetch('EXTERNAL_SERVICES_MAX_ACTION_AGE', '90').to_i.days
6
8
 
7
9
  attr_accessor :async
8
10
 
@@ -13,8 +15,8 @@ module ExternalServices
13
15
  validates :initiator_id, :initiator_type, :method, :path, :queue, presence: true
14
16
  validate :path_format_correctness
15
17
 
16
- serialize :data, JSON
17
- serialize :options, JSON
18
+ serialize :data, coder: JSON
19
+ serialize :options, coder: JSON
18
20
 
19
21
  scope :to_create, ->(obj) { where(initiator: obj, method: :post) }
20
22
 
@@ -90,6 +92,7 @@ module ExternalServices
90
92
 
91
93
  def create_or_update(*args)
92
94
  return true unless async
95
+
93
96
  super
94
97
  end
95
98
  end
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  class Service < ::ActiveRecord::Base
3
5
  self.table_name = :external_services
4
6
 
5
7
  belongs_to :subject, polymorphic: true
6
- serialize :extra_data, JSON
8
+ serialize :extra_data, coder: JSON
7
9
 
8
10
  after_update :on_first_sync, if: proc { # Rails 5.1+ support
9
- (respond_to?(:saved_change_to_external_id?) ? saved_change_to_external_id? : external_id_changed? ) &&
10
- (respond_to?(:external_id_before_last_save) ? external_id_before_last_save : external_id_was).nil?
11
+ (respond_to?(:saved_change_to_external_id?) ? saved_change_to_external_id? : external_id_changed?) &&
12
+ (respond_to?(:external_id_before_last_save) ? external_id_before_last_save : external_id_was).nil?
11
13
  }
12
14
 
13
15
  def self.to_sym
@@ -22,6 +24,7 @@ module ExternalServices
22
24
  def on_subject_update(subj)
23
25
  method = subj.send("#{api_name}_id").present? ? :put : :post
24
26
  return true if (subj.respond_to?(:became_archived?) && subj.became_archived?) && method == :post
27
+
25
28
  subj.send("#{api_name}_api_action", method)
26
29
  end
27
30
 
data/bin/rails CHANGED
@@ -1,12 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  # This command will automatically be run when you run "rails" with Rails gems
3
5
  # installed from the root of your application.
4
6
 
5
- ENGINE_ROOT = File.expand_path('../..', __FILE__)
6
- ENGINE_PATH = File.expand_path('../../lib/external_services/engine', __FILE__)
7
+ ENGINE_ROOT = File.expand_path('..', __dir__)
8
+ ENGINE_PATH = File.expand_path('../lib/external_services/engine', __dir__)
7
9
 
8
10
  # Set up gems listed in the Gemfile.
9
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
11
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
10
12
  require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
11
13
 
12
14
  require 'rails/all'
@@ -1,6 +1,6 @@
1
- lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'external_services/version'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/external_services/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'external_services'
@@ -22,7 +22,9 @@ Gem::Specification.new do |spec|
22
22
  And there is a sidekiq queue clean function, you should use it on Sidekiq start instead of cleaning all Redis db.
23
23
  MSG
24
24
 
25
+ spec.required_ruby_version = '>= 2.7'
26
+
25
27
  spec.add_dependency 'faraday', '>= 1.4', '< 2'
26
28
  spec.add_dependency 'faraday_middleware', '>= 1.0', '< 2'
27
- spec.add_dependency 'rails', ['>= 4.2.5', '< 7.1']
29
+ spec.add_dependency 'rails', '>= 4.2.5', '< 8'
28
30
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  module ActiveRecord
3
5
  module HasExternalService
@@ -24,13 +26,11 @@ module ExternalServices
24
26
  extend service_class::SubjectClassMethods if defined? service_class::SubjectClassMethods
25
27
  include service_class::SubjectMethods if defined? service_class::SubjectMethods
26
28
 
27
- # rubocop:disable Lint/HandleExceptions
28
29
  begin
29
30
  service_module = const_get(name.to_s.camelize, false)
30
31
  include service_module
31
32
  rescue NameError
32
33
  end
33
- # rubocop:enable Lint/HandleExceptions
34
34
  end
35
35
 
36
36
  def includes_external_services
@@ -106,7 +106,7 @@ module ExternalServices
106
106
  before_destroy :halt_on_external_services_syncing
107
107
  end
108
108
 
109
- after_save :"#{name}_on_create", if: proc { # Rails 5.1+ support
109
+ after_save :"#{name}_on_create", if: proc { # Rails 5.1+ support
110
110
  respond_to?(:saved_change_to_id?) ? saved_change_to_id? : id_changed?
111
111
  }
112
112
 
@@ -120,7 +120,6 @@ module ExternalServices
120
120
  define_method :"#{name}_on_create" do
121
121
  public_send(service_assoc).on_subject_create(self) unless only_api_actions
122
122
  end
123
- protected :"#{name}_on_create"
124
123
 
125
124
  define_method :"#{name}_on_update" do
126
125
  public_send(service_assoc).on_subject_update(self) unless only_api_actions
@@ -129,17 +128,16 @@ module ExternalServices
129
128
  define_method :"#{name}_on_destroy" do
130
129
  public_send(service_assoc).on_subject_destroy(self) unless only_api_actions
131
130
  end
132
- protected :"#{name}_on_destroy"
133
-
134
- protected def halt_on_external_services_syncing
135
- if external_services_syncing?
136
- errors.add :base, :external_services_sync_in_process
137
- if ::ActiveRecord::VERSION::MAJOR < 5
138
- return false
139
- else
140
- throw :abort
141
- end
142
- end
131
+
132
+ protected
133
+
134
+ def halt_on_external_services_syncing
135
+ return unless external_services_syncing?
136
+
137
+ errors.add :base, :external_services_sync_in_process
138
+ return false if ::ActiveRecord::VERSION::MAJOR < 5
139
+
140
+ throw :abort
143
141
  end
144
142
  end
145
143
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
@@ -166,13 +164,13 @@ module ExternalServices
166
164
  end
167
165
 
168
166
  define_method :external_services_synced? do
169
- result = (!defined?(super) || super())
167
+ result = !defined?(super) || super()
170
168
  result &&= public_send(synced_method) unless public_send(disabled_method)
171
169
  result
172
170
  end
173
171
 
174
172
  define_method :external_services_syncing? do
175
- result = (defined?(super) && super())
173
+ result = defined?(super) && super()
176
174
  result ||= public_send(syncing_method) unless public_send(disabled_method)
177
175
  result
178
176
  end
@@ -217,14 +215,12 @@ module ExternalServices
217
215
  end
218
216
 
219
217
  define_method :"without_#{name}_api" do |&blk|
220
- begin
221
- old = send :"#{name}_api_disabled"
222
- send :"#{name}_api_disabled=", true
218
+ old = send :"#{name}_api_disabled"
219
+ send :"#{name}_api_disabled=", true
223
220
 
224
- blk.call
225
- ensure
226
- send :"#{name}_api_disabled=", old
227
- end
221
+ blk.call
222
+ ensure
223
+ send :"#{name}_api_disabled=", old
228
224
  end
229
225
 
230
226
  define_method :"find_all_by_#{name}_ids" do |ids|
@@ -272,13 +268,13 @@ module ExternalServices
272
268
 
273
269
  action = "ExternalServices::ApiActions::#{name.to_s.camelize}".constantize.new(
274
270
  initiator: self,
275
- name: args[:name] || self.class.send(:"#{name}_api_name"),
276
- method: method,
277
- path: path,
278
- data: data,
279
- queue: args[:queue],
280
- options: options,
281
- async: async
271
+ name: args[:name] || self.class.send(:"#{name}_api_name"),
272
+ method: method,
273
+ path: path,
274
+ data: data,
275
+ queue: args[:queue],
276
+ options: options,
277
+ async: async
282
278
  )
283
279
 
284
280
  if async
@@ -299,5 +295,5 @@ module ExternalServices
299
295
  end
300
296
 
301
297
  ActiveSupport.on_load :active_record do
302
- ActiveRecord::Base.send :include, ExternalServices::ActiveRecord::HasExternalService
298
+ ActiveRecord::Base.include ExternalServices::ActiveRecord::HasExternalService
303
299
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
  require 'faraday_middleware'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails'
2
4
  module ExternalServices
3
5
  class Engine < ::Rails::Engine
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
- VERSION = '0.5.2'.freeze
4
+ VERSION = '0.5.4'
3
5
  end
@@ -1,18 +1,20 @@
1
- require 'external_services/engine'
2
- require 'external_services/version'
1
+ # frozen_string_literal: true
3
2
 
4
- require 'external_services/active_record'
5
- require 'external_services/api'
6
- require 'generators/install_generator'
7
- require 'generators/service_generator'
3
+ require_relative 'external_services/engine'
4
+ require_relative 'external_services/version'
5
+
6
+ require_relative 'external_services/active_record'
7
+ require_relative 'external_services/api'
8
+ require_relative 'generators/install_generator'
9
+ require_relative 'generators/service_generator'
8
10
 
9
11
  if defined?(::RSpec::Core)
10
- require 'rspec/configuration'
11
- require 'rspec/helpers'
12
+ require_relative 'rspec/configuration'
13
+ require_relative 'rspec/helpers'
12
14
  end
13
15
 
14
- Dir[File.join(File.expand_path('lib/external_services'), 'api', '*.rb')].each do |api|
15
- require api
16
+ Dir[File.join(File.expand_path('lib/external_services'), 'api', '*.rb')].sort.each do |api|
17
+ require_relative api
16
18
  end
17
19
 
18
20
  module ExternalServices
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/generators'
2
4
  require 'rails/generators/active_record'
3
5
 
@@ -15,7 +17,7 @@ module ExternalServices
15
17
  return unless Rails::VERSION::MAJOR >= 5
16
18
 
17
19
  "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
18
- end
20
+ end
19
21
 
20
22
  def create_migration_files
21
23
  add_migration('create_external_services')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/generators'
2
4
  require 'rails/generators/active_record'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  module RSpec
3
5
  module Configuration
@@ -18,4 +20,4 @@ module ExternalServices
18
20
  end
19
21
  end
20
22
 
21
- RSpec::Core::Configuration.send(:include, ExternalServices::RSpec::Configuration)
23
+ RSpec::Core::Configuration.include ExternalServices::RSpec::Configuration
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ExternalServices
2
4
  module RSpec
3
5
  module Disabler
data/lib/rspec/helpers.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/disabler'
2
4
 
3
5
  module ExternalServices
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: external_services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Gnuskov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-03 00:00:00.000000000 Z
11
+ date: 2024-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: 4.2.5
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '7.1'
62
+ version: '8'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: 4.2.5
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '7.1'
72
+ version: '8'
73
73
  description:
74
74
  email:
75
75
  - sergey.gnuskov@flant.com
@@ -125,14 +125,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '0'
128
+ version: '2.7'
129
129
  required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  requirements: []
135
- rubygems_version: 3.4.10
135
+ rubygems_version: 3.5.16
136
136
  signing_key:
137
137
  specification_version: 4
138
138
  summary: Gem helps syncronizing objects to different external services like Gitlab,