external_services 0.4.0 → 0.4.1

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: 92c1be5018af4ae557172d9356067a060ed1a5815f776ee0b88c8267cbde8c25
4
- data.tar.gz: 80c51c26e32976717e96c114260a165914fada0b4a4106aaf1835fe20798988d
3
+ metadata.gz: ee131a3f609b2159c2b1b585699b53b44b52dc85ff9f5ce110b1292a723fba14
4
+ data.tar.gz: 7c87a38851dcfc2e0d99e8a42375a70328e8b2c9e47734c23607d3150b2e1dec
5
5
  SHA512:
6
- metadata.gz: 1f908bc5a978f9db391ec8dc89dc9fd3164a945204c91f1f83db0876381190646df3e3b9b582d8631c1bd63f2bea958df76cb1e61cf813c9a9b32260d37cfa1a
7
- data.tar.gz: 707d673a53707fad53ea4e683a22f4d2e674f2a442518b281c20f8fd4a5f28f481502e2778f8a402c0c02246c4fbea837f4f2ebc1cfab3897f80464c975eb1e3
6
+ metadata.gz: f2871bce5fa4c7843eede64f0698b4134bb43025b9358b6ed813cedbd837c87cc9cbb12840409512028b4c79b175f3c163de523eece3307b62944e5d2f0ee572
7
+ data.tar.gz: f2918bb0ad232e953ccbd49fd16c613ec2b8903696193d97759c64cdc1d2424a76fec34b721362db4c19cc89643c8f637e4429ad6f212b5b83db38be2467c317
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- external_services (0.4.0)
4
+ external_services (0.4.1)
5
5
  faraday (>= 0.9)
6
6
  faraday_middleware (>= 0.10)
7
7
  rails (>= 4.2.5, < 6.0)
@@ -91,7 +91,7 @@ GEM
91
91
  json (2.1.0)
92
92
  launchy (2.4.3)
93
93
  addressable (~> 2.3)
94
- loofah (2.2.2)
94
+ loofah (2.2.3)
95
95
  crass (~> 1.0.2)
96
96
  nokogiri (>= 1.5.9)
97
97
  mail (2.7.1)
@@ -101,15 +101,15 @@ GEM
101
101
  method_source (0.9.0)
102
102
  mimemagic (0.3.2)
103
103
  mini_mime (1.0.1)
104
- mini_portile2 (2.3.0)
104
+ mini_portile2 (2.4.0)
105
105
  minitest (5.11.3)
106
106
  multi_json (1.13.1)
107
107
  multipart-post (2.0.0)
108
108
  net-http-persistent (2.9.4)
109
109
  net-http-pipeline (1.0.1)
110
110
  nio4r (2.3.1)
111
- nokogiri (1.8.5)
112
- mini_portile2 (~> 2.3.0)
111
+ nokogiri (1.9.1)
112
+ mini_portile2 (~> 2.4.0)
113
113
  overcommit (0.46.0)
114
114
  childprocess (~> 0.6, >= 0.6.3)
115
115
  iniparse (~> 1.4)
@@ -125,7 +125,7 @@ GEM
125
125
  pusher-client (0.6.2)
126
126
  json
127
127
  websocket (~> 1.0)
128
- rack (2.0.5)
128
+ rack (2.0.6)
129
129
  rack-test (1.1.0)
130
130
  rack (>= 1.0, < 3)
131
131
  rails (5.2.1)
@@ -225,4 +225,4 @@ DEPENDENCIES
225
225
  travis (~> 1.8, >= 1.8.2)
226
226
 
227
227
  BUNDLED WITH
228
- 1.16.1
228
+ 1.16.2
@@ -5,7 +5,7 @@ module ExternalServices
5
5
  QUEUE_PREFIX = 'external_services'
6
6
 
7
7
  included do
8
- scope :processed, -> { where.not(processed_at: nil) }
8
+ scope :processed, -> { where.not(processed_at: nil) }
9
9
  scope :unprocessed, -> { where(processed_at: nil) }
10
10
 
11
11
  after_commit :kick_active_job
@@ -2,6 +2,8 @@ module ExternalServices
2
2
  class ApiAction < ::ActiveRecord::Base
3
3
  include ExternalServices::Action
4
4
 
5
+ MAX_ACTION_AGE = ENV.fetch('EXTERNAL_SERVICES_MAX_ACTION_AGE') { '90' }.to_i.days
6
+
5
7
  attr_accessor :async
6
8
 
7
9
  self.table_name = :external_services_api_actions
@@ -14,7 +16,6 @@ module ExternalServices
14
16
  serialize :data, JSON
15
17
  serialize :options, JSON
16
18
 
17
- scope :unprocessed, -> { where(processed_at: nil) }
18
19
  scope :to_create, ->(obj) { where(initiator: obj, method: :post) }
19
20
 
20
21
  before_validation :assign_queue
@@ -22,6 +23,10 @@ module ExternalServices
22
23
 
23
24
  before_create :calculate_signature
24
25
 
26
+ def self.delete_old_processed
27
+ processed.where(arel_table[:created_at].lt(MAX_ACTION_AGE.ago)).delete_all
28
+ end
29
+
25
30
  def initiator_class
26
31
  # Need to use initiator object for STI in polymorphic.. But still will be bugs with deleted STI object and
27
32
  # non-STI inheritance
@@ -13,6 +13,12 @@ module ExternalServices
13
13
  def message
14
14
  @response.inspect
15
15
  end
16
+
17
+ alias :to_s :message
18
+
19
+ def inspect
20
+ "#{self.class}: #{to_s}"
21
+ end
16
22
  end
17
23
 
18
24
  def api_url
@@ -1,3 +1,3 @@
1
1
  module ExternalServices
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.4.1'.freeze
3
3
  end
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.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Gnuskov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-19 00:00:00.000000000 Z
11
+ date: 2018-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.7.7
123
+ rubygems_version: 2.7.8
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Gem helps syncronizing objects to different external services like Gitlab,