external_services 0.4.0 → 0.4.1

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: 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,