maestrano-connector-rails 1.2.0 → 1.2.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 +4 -4
- data/.ruby-version +1 -0
- data/CODESHIP.md +11 -0
- data/Gemfile +4 -1
- data/VERSION +1 -1
- data/app/jobs/maestrano/connector/rails/push_to_connec_worker.rb +19 -0
- data/maestrano-connector-rails.gemspec +17 -7
- data/release_notes.md +22 -0
- data/spec/jobs/push_to_connec_worker_spec.rb +26 -0
- data/template/maestrano-connector-template.rb +2 -0
- metadata +37 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95e92f2381cc4ebc9478d3b71f683c6befeb10aa
|
4
|
+
data.tar.gz: 54d7c193e363d6c1897dde5232e995c6a782a0a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d274d460bb4c47ef71745754e91ead09874cdeca8f654f83c8e164bbf6fc3766a8a176e1c3fe917782dd410ae59ce43a254fe833c7039ee5f2312ab09e99d66
|
7
|
+
data.tar.gz: 55381a11bdf457004c6e82b6097edc9c4b3f1bc4f8326203e1018cc4628e67cf987f466cd0ed26de292f36c6177f8cc4b59f01d7f813cb3af460aa378238dd98
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.3.1@maestrano-connector-rails
|
data/CODESHIP.md
ADDED
data/Gemfile
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
3
|
# Add dependencies required to use your gem here.
|
4
|
+
gem 'rails', '~> 4.0'
|
4
5
|
gem 'maestrano-rails'
|
5
6
|
gem 'hash_mapper'
|
6
7
|
gem 'sidekiq'
|
8
|
+
# The missing unique jobs for sidekiq
|
9
|
+
gem 'sidekiq-unique-jobs'
|
7
10
|
gem 'haml-rails'
|
8
11
|
gem 'bootstrap-sass'
|
9
12
|
gem 'autoprefixer-rails'
|
@@ -15,7 +18,7 @@ group :development do
|
|
15
18
|
gem "shoulda", ">= 0"
|
16
19
|
gem "rdoc", "~> 3.12"
|
17
20
|
gem "bundler", "~> 1.0"
|
18
|
-
gem "jeweler", "~> 2.
|
21
|
+
gem "jeweler", "~> 2.1.1"
|
19
22
|
gem "simplecov", ">= 0"
|
20
23
|
gem 'rspec-rails'
|
21
24
|
gem 'factory_girl_rails'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Maestrano::Connector::Rails
|
2
|
+
|
3
|
+
# This class process the push to Connec, it use PushToConnecJob for retrocompatibility
|
4
|
+
# By using sidekiq-unique-jobs, it makes sure that 2 calls on the same entity, are processed in order
|
5
|
+
class PushToConnecWorker
|
6
|
+
include Sidekiq::Worker
|
7
|
+
sidekiq_options unique: :while_executing, unique_args: :unique_args
|
8
|
+
|
9
|
+
def self.unique_args(args)
|
10
|
+
organization = args[0]
|
11
|
+
entities_hash = args[1]
|
12
|
+
return[organization.id, entities_hash.keys.sort]
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform(organization, entities_hash, opts={})
|
16
|
+
PushToConnecJob.new.perform(organization, entities_hash, opts)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: maestrano-connector-rails 1.2.
|
5
|
+
# stub: maestrano-connector-rails 1.2.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "maestrano-connector-rails"
|
9
|
-
s.version = "1.2.
|
9
|
+
s.version = "1.2.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Pierre Berard"]
|
14
|
-
s.date = "2016-07-
|
14
|
+
s.date = "2016-07-04"
|
15
15
|
s.description = "Maestrano is the next generation marketplace for SME applications. See https://maestrano.com for details."
|
16
16
|
s.email = "pierre.berard@maestrano.com"
|
17
17
|
s.executables = ["rails"]
|
@@ -21,6 +21,8 @@ Gem::Specification.new do |s|
|
|
21
21
|
]
|
22
22
|
s.files = [
|
23
23
|
".rspec",
|
24
|
+
".ruby-version",
|
25
|
+
"CODESHIP.md",
|
24
26
|
"DEVELOPER.md",
|
25
27
|
"Gemfile",
|
26
28
|
"LICENSE",
|
@@ -38,6 +40,7 @@ Gem::Specification.new do |s|
|
|
38
40
|
"app/helpers/maestrano/connector/rails/session_helper.rb",
|
39
41
|
"app/jobs/maestrano/connector/rails/all_synchronizations_job.rb",
|
40
42
|
"app/jobs/maestrano/connector/rails/push_to_connec_job.rb",
|
43
|
+
"app/jobs/maestrano/connector/rails/push_to_connec_worker.rb",
|
41
44
|
"app/jobs/maestrano/connector/rails/synchronization_job.rb",
|
42
45
|
"app/models/maestrano/connector/rails/complex_entity.rb",
|
43
46
|
"app/models/maestrano/connector/rails/concerns/complex_entity.rb",
|
@@ -170,6 +173,7 @@ Gem::Specification.new do |s|
|
|
170
173
|
"spec/integration/singleton_spec.rb",
|
171
174
|
"spec/jobs/all_synchronizations_job_spec.rb",
|
172
175
|
"spec/jobs/push_to_connec_job_spec.rb",
|
176
|
+
"spec/jobs/push_to_connec_worker_spec.rb",
|
173
177
|
"spec/jobs/synchronization_job_spec.rb",
|
174
178
|
"spec/models/complex_entity_spec.rb",
|
175
179
|
"spec/models/connec_helper_spec.rb",
|
@@ -204,16 +208,18 @@ Gem::Specification.new do |s|
|
|
204
208
|
]
|
205
209
|
s.homepage = "http://github.com/maestrano/maestrano-connector-rails"
|
206
210
|
s.licenses = ["MIT"]
|
207
|
-
s.rubygems_version = "2.
|
211
|
+
s.rubygems_version = "2.5.1"
|
208
212
|
s.summary = "Rails framework to build connector with Maestrano"
|
209
213
|
|
210
214
|
if s.respond_to? :specification_version then
|
211
215
|
s.specification_version = 4
|
212
216
|
|
213
217
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
218
|
+
s.add_runtime_dependency(%q<rails>, ["~> 4.0"])
|
214
219
|
s.add_runtime_dependency(%q<maestrano-rails>, [">= 0"])
|
215
220
|
s.add_runtime_dependency(%q<hash_mapper>, [">= 0"])
|
216
221
|
s.add_runtime_dependency(%q<sidekiq>, [">= 0"])
|
222
|
+
s.add_runtime_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
217
223
|
s.add_runtime_dependency(%q<haml-rails>, [">= 0"])
|
218
224
|
s.add_runtime_dependency(%q<bootstrap-sass>, [">= 0"])
|
219
225
|
s.add_runtime_dependency(%q<autoprefixer-rails>, [">= 0"])
|
@@ -222,7 +228,7 @@ Gem::Specification.new do |s|
|
|
222
228
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
223
229
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
224
230
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
225
|
-
s.add_development_dependency(%q<jeweler>, ["~> 2.
|
231
|
+
s.add_development_dependency(%q<jeweler>, ["~> 2.1.1"])
|
226
232
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
227
233
|
s.add_development_dependency(%q<rspec-rails>, [">= 0"])
|
228
234
|
s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
|
@@ -230,9 +236,11 @@ Gem::Specification.new do |s|
|
|
230
236
|
s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
|
231
237
|
s.add_development_dependency(%q<timecop>, [">= 0"])
|
232
238
|
else
|
239
|
+
s.add_dependency(%q<rails>, ["~> 4.0"])
|
233
240
|
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
234
241
|
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
235
242
|
s.add_dependency(%q<sidekiq>, [">= 0"])
|
243
|
+
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
236
244
|
s.add_dependency(%q<haml-rails>, [">= 0"])
|
237
245
|
s.add_dependency(%q<bootstrap-sass>, [">= 0"])
|
238
246
|
s.add_dependency(%q<autoprefixer-rails>, [">= 0"])
|
@@ -241,7 +249,7 @@ Gem::Specification.new do |s|
|
|
241
249
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
242
250
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
243
251
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
244
|
-
s.add_dependency(%q<jeweler>, ["~> 2.
|
252
|
+
s.add_dependency(%q<jeweler>, ["~> 2.1.1"])
|
245
253
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
246
254
|
s.add_dependency(%q<rspec-rails>, [">= 0"])
|
247
255
|
s.add_dependency(%q<factory_girl_rails>, [">= 0"])
|
@@ -250,9 +258,11 @@ Gem::Specification.new do |s|
|
|
250
258
|
s.add_dependency(%q<timecop>, [">= 0"])
|
251
259
|
end
|
252
260
|
else
|
261
|
+
s.add_dependency(%q<rails>, ["~> 4.0"])
|
253
262
|
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
254
263
|
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
255
264
|
s.add_dependency(%q<sidekiq>, [">= 0"])
|
265
|
+
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
256
266
|
s.add_dependency(%q<haml-rails>, [">= 0"])
|
257
267
|
s.add_dependency(%q<bootstrap-sass>, [">= 0"])
|
258
268
|
s.add_dependency(%q<autoprefixer-rails>, [">= 0"])
|
@@ -261,7 +271,7 @@ Gem::Specification.new do |s|
|
|
261
271
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
262
272
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
263
273
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
264
|
-
s.add_dependency(%q<jeweler>, ["~> 2.
|
274
|
+
s.add_dependency(%q<jeweler>, ["~> 2.1.1"])
|
265
275
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
266
276
|
s.add_dependency(%q<rspec-rails>, [">= 0"])
|
267
277
|
s.add_dependency(%q<factory_girl_rails>, [">= 0"])
|
data/release_notes.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## 1.2.0
|
2
|
+
/!\ For this version to work, you'll need to add `< Maestrano::Connector::Rails::EntityBase` to your `entity.rb` class
|
3
|
+
|
4
|
+
### Features
|
5
|
+
* Custom synchronization process for first sync. (For this feature to work, you'll need to implement handling of additionnal options in your `get_external_entities` method. The connector will still work as before if you don't).
|
6
|
+
* Administrations endpoints to get the synchronizations status, start a synchronization, toggle `sync_enabled` and get the connector dependancies (depenancies are declared in ConnecHelper. You'll need to overload the dependancies method if you have specific dependancies)
|
7
|
+
|
8
|
+
### Improvments
|
9
|
+
* Entity and ComplexEntity now inherits from EntityBase
|
10
|
+
|
11
|
+
## 1.1.2
|
12
|
+
/!\ This version need a migration (`bundle exec rake railties:install:migrations; bundle exec rake db:migrate`). It also requires the running of a manual script to encrypt existing oauth_keys
|
13
|
+
You'll also need to change some methods as the framework is not sending the `last_synchronization` anymore but directly the `last_synchronization_date` (`get_external_entities`, `before_sync`, `after_sync`)
|
14
|
+
|
15
|
+
### Features
|
16
|
+
* Encryption of oauth keys (you'll need to add `gem 'attr_encrypted', '~> 1.4.0'` to your Gemfile)
|
17
|
+
* No historical data option: only data created after the link to the connector will be sync. For this option to be available, you'll need to implement a `creation_date_from_external_entity_hash` method. It also requires a front end update (view, controller, js)
|
18
|
+
|
19
|
+
### Fixes
|
20
|
+
* Fix synchronization cleaning
|
21
|
+
* Minor fixes
|
22
|
+
|
1
23
|
## 1.0.4
|
2
24
|
|
3
25
|
### Fixes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sidekiq/testing'
|
3
|
+
|
4
|
+
describe Maestrano::Connector::Rails::PushToConnecWorker do
|
5
|
+
describe 'class method' do
|
6
|
+
let(:organization) { create(:organization) }
|
7
|
+
subject { Maestrano::Connector::Rails::PushToConnecWorker }
|
8
|
+
|
9
|
+
Sidekiq::Testing.fake!
|
10
|
+
it 'perform_async add a new job' do
|
11
|
+
expect {
|
12
|
+
subject.perform_async(1, 2, 3)
|
13
|
+
}.to change(subject.jobs, :size).by(1)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'unique_args' do
|
17
|
+
it do
|
18
|
+
entities_hash = {entity_2: [{'id': 'id2'}, {'id': 'id1'}], entity_1: [{'id': 'id4'}, {'id': nil}, {'id': 'id3'}, {'id': 'id3'}]}
|
19
|
+
expect(subject.unique_args([organization, entities_hash])).to eq([organization.id, [:entity_1, :entity_2]])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
end
|
26
|
+
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maestrano-connector-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre Berard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: maestrano-rails
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sidekiq-unique-jobs
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: haml-rails
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +198,14 @@ dependencies:
|
|
170
198
|
requirements:
|
171
199
|
- - "~>"
|
172
200
|
- !ruby/object:Gem::Version
|
173
|
-
version: 2.
|
201
|
+
version: 2.1.1
|
174
202
|
type: :development
|
175
203
|
prerelease: false
|
176
204
|
version_requirements: !ruby/object:Gem::Requirement
|
177
205
|
requirements:
|
178
206
|
- - "~>"
|
179
207
|
- !ruby/object:Gem::Version
|
180
|
-
version: 2.
|
208
|
+
version: 2.1.1
|
181
209
|
- !ruby/object:Gem::Dependency
|
182
210
|
name: simplecov
|
183
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -273,6 +301,8 @@ extra_rdoc_files:
|
|
273
301
|
- README.md
|
274
302
|
files:
|
275
303
|
- ".rspec"
|
304
|
+
- ".ruby-version"
|
305
|
+
- CODESHIP.md
|
276
306
|
- DEVELOPER.md
|
277
307
|
- Gemfile
|
278
308
|
- LICENSE
|
@@ -290,6 +320,7 @@ files:
|
|
290
320
|
- app/helpers/maestrano/connector/rails/session_helper.rb
|
291
321
|
- app/jobs/maestrano/connector/rails/all_synchronizations_job.rb
|
292
322
|
- app/jobs/maestrano/connector/rails/push_to_connec_job.rb
|
323
|
+
- app/jobs/maestrano/connector/rails/push_to_connec_worker.rb
|
293
324
|
- app/jobs/maestrano/connector/rails/synchronization_job.rb
|
294
325
|
- app/models/maestrano/connector/rails/complex_entity.rb
|
295
326
|
- app/models/maestrano/connector/rails/concerns/complex_entity.rb
|
@@ -422,6 +453,7 @@ files:
|
|
422
453
|
- spec/integration/singleton_spec.rb
|
423
454
|
- spec/jobs/all_synchronizations_job_spec.rb
|
424
455
|
- spec/jobs/push_to_connec_job_spec.rb
|
456
|
+
- spec/jobs/push_to_connec_worker_spec.rb
|
425
457
|
- spec/jobs/synchronization_job_spec.rb
|
426
458
|
- spec/models/complex_entity_spec.rb
|
427
459
|
- spec/models/connec_helper_spec.rb
|
@@ -473,7 +505,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
473
505
|
version: '0'
|
474
506
|
requirements: []
|
475
507
|
rubyforge_project:
|
476
|
-
rubygems_version: 2.
|
508
|
+
rubygems_version: 2.5.1
|
477
509
|
signing_key:
|
478
510
|
specification_version: 4
|
479
511
|
summary: Rails framework to build connector with Maestrano
|