maestrano-connector-rails 1.5.0 → 2.0.0.pre.RC1

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
  SHA1:
3
- metadata.gz: a944dc14eab6daaf5ba9596a36958f2e363aba3d
4
- data.tar.gz: 800b7d60536b0c229da755641a9e9d43089894a3
3
+ metadata.gz: 20af245e9479b89f2432aaedc8bfdf6648314631
4
+ data.tar.gz: f5d2c1d4222c0a7d8cdd3736aecaf4acc44d96b7
5
5
  SHA512:
6
- metadata.gz: 989bd5a085084e768190d3b8af8302de4f8a397ea6e129da2d8834d776bf12f33ec7b0362798bfa20803f7065ce28c8f09679dfac31bdf161cc3e62597bd962a
7
- data.tar.gz: 54e7614a33ff5c3cf1552f77874cd9c17880f01a4e5fb820d9d6fa2acd1ef620a2a24c6df9ed96f5545f57acabbe647b6a38fad130ce970ca1e6f20036d34b8f
6
+ metadata.gz: c460c160a31c3372dcbfa6ea34184668a28b249ec527a62582651db6a198a57985969571b987d64ed43b7c05909a7bc6f1969ce070f8160424a1172f4fdaadfa
7
+ data.tar.gz: 09dc98a9f479db3080e2b9dc1dd10e6d717cbd99f121a11d983b5d3deda5983a0efcae420da051501631f5a87540232802576367a7d1cb679fd22f89bee13d5c
data/.rubocop.yml CHANGED
@@ -20,9 +20,6 @@ Style/CollectionMethods:
20
20
  Metrics/LineLength:
21
21
  Max: 320
22
22
 
23
- Metrics/MethodLength:
24
- Max: 50
25
-
26
23
  Style/IndentationConsistency:
27
24
  EnforcedStyle: rails
28
25
 
data/.rubocop_todo.yml CHANGED
@@ -102,6 +102,14 @@ Style/EmptyLinesAroundModuleBody:
102
102
  Style/FrozenStringLiteralComment:
103
103
  Enabled: false
104
104
 
105
+ # Offense count: 1
106
+ # Cop supports --auto-correct.
107
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
108
+ # SupportedStyles: predicate, comparison
109
+ Style/NumericPredicate:
110
+ Exclude:
111
+ - 'app/models/maestrano/connector/rails/organization.rb'
112
+
105
113
  # Offense count: 3
106
114
  # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
107
115
  # NamePrefix: is_, has_, have_
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  # Add dependencies required to use your gem here.
4
- gem 'rails', '~> 4.2'
5
- gem 'maestrano-rails'
4
+ gem 'rails'
5
+ gem 'maestrano-rails', '1.0.0.pre.RC2'
6
6
 
7
7
  gem 'hash_mapper', '>= 0.2.2'
8
8
  gem 'haml-rails'
@@ -15,7 +15,7 @@ gem 'figaro'
15
15
  gem 'sidekiq'
16
16
  # The missing unique jobs for sidekiq
17
17
  gem 'sidekiq-unique-jobs'
18
- gem 'sinatra', require: false
18
+ gem 'sinatra', require: nil
19
19
  gem 'sidekiq-cron'
20
20
  gem 'slim'
21
21
 
@@ -28,7 +28,8 @@ group :development do
28
28
  gem 'simplecov', '>= 0'
29
29
  gem 'rspec-rails'
30
30
  gem 'factory_girl_rails'
31
- gem 'sqlite3'
31
+ gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
32
+ gem 'sqlite3', :platforms => :ruby
32
33
  gem 'shoulda-matchers'
33
34
  gem 'rubocop'
34
35
  gem 'timecop'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.0
1
+ 2.0.0.pre.RC1
@@ -24,7 +24,7 @@ class Maestrano::Auth::SamlController < Maestrano::Rails::SamlBaseController
24
24
  if session[:settings]
25
25
  session.delete(:settings)
26
26
  redirect_to main_app.root_path
27
- elsif current_organization&.oauth_uid && current_organization&.sync_enabled
27
+ elsif current_organization && current_organization.oauth_uid && current_organization.sync_enabled
28
28
  redirect_to main_app.home_redirect_to_external_path
29
29
  else
30
30
  redirect_to main_app.root_path
@@ -9,7 +9,7 @@ class Maestrano::ConnecController < Maestrano::Rails::WebHookController
9
9
 
10
10
  entities.each do |entity|
11
11
  organization = Maestrano::Connector::Rails::Organization.find_by_uid_and_tenant(entity[:group_id], params[:tenant])
12
- next Rails.logger.warn "Received notification from Connec! for unknown group or group without oauth: #{entity['group_id']} (tenant: #{params[:tenant]})" unless organization&.oauth_uid
12
+ next Rails.logger.warn "Received notification from Connec! for unknown group or group without oauth: #{entity['group_id']} (tenant: #{params[:tenant]})" unless organization && organization.oauth_uid
13
13
  next unless organization.sync_enabled && organization.synchronized_entities[entity_class_hash[:name].to_sym]
14
14
 
15
15
  Maestrano::Connector::Rails::ConnectorLogger.log('info', organization, "Received entity from Connec! webhook: Entity=#{entity_name}, Data=#{entity}")
@@ -3,11 +3,23 @@ class Maestrano::SynchronizationsController < Maestrano::Rails::WebHookControlle
3
3
  tenant = params[:tenant]
4
4
  uid = params[:id]
5
5
  organization = Maestrano::Connector::Rails::Organization.find_by_uid_and_tenant(uid, tenant)
6
- return render json: {errors: [{message: 'Organization not found', code: 404}]}, status: :not_found unless organization
7
-
8
- status = organization_status organization
6
+ return render json: {errors: [{message: "Organization not found", code: 404}]}, status: :not_found unless organization
7
+
8
+ h = {
9
+ group_id: organization.uid,
10
+ sync_enabled: organization.sync_enabled
11
+ }
12
+
13
+ last_sync = organization.synchronizations.last
14
+ if last_sync
15
+ h.merge!(
16
+ status: last_sync.status,
17
+ message: last_sync.message,
18
+ updated_at: last_sync.updated_at
19
+ )
20
+ end
9
21
 
10
- render_organization_sync(organization, status, 200)
22
+ render json: h
11
23
  end
12
24
 
13
25
  def create
@@ -15,55 +27,21 @@ class Maestrano::SynchronizationsController < Maestrano::Rails::WebHookControlle
15
27
  uid = params[:group_id]
16
28
  opts = params[:opts] || {}
17
29
  organization = Maestrano::Connector::Rails::Organization.find_by_uid_and_tenant(uid, tenant)
18
- return render json: {errors: [{message: 'Organization not found', code: 404}]}, status: :not_found unless organization
19
-
20
- status = organization_status(organization)
30
+ return render json: {errors: [{message: "Organization not found", code: 404}]}, status: :not_found unless organization
21
31
 
22
- unless status == 'RUNNING' || status == 'ENQUEUED'
23
- Maestrano::Connector::Rails::SynchronizationJob.perform_later(organization.id, opts.with_indifferent_access)
24
- status = 'ENQUEUED'
25
- end
26
-
27
- render_organization_sync(organization, status, 201)
32
+ Maestrano::Connector::Rails::SynchronizationJob.perform_later(organization, opts.with_indifferent_access)
33
+ head :created
28
34
  end
29
35
 
30
36
  def toggle_sync
31
37
  tenant = params[:tenant]
32
38
  uid = params[:group_id]
33
39
  organization = Maestrano::Connector::Rails::Organization.find_by_uid_and_tenant(uid, tenant)
34
- return render json: {errors: [{message: 'Organization not found', code: 404}]}, status: :not_found unless organization
40
+ return render json: {errors: [{message: "Organization not found", code: 404}]}, status: :not_found unless organization
35
41
 
36
42
  organization.toggle(:sync_enabled)
37
43
  organization.save
38
- status = organization_status organization
39
- render_organization_sync(organization, status, 200)
40
- end
41
44
 
42
- private
43
-
44
- def render_organization_sync(organization, status, code)
45
- h = {
46
- group_id: organization.uid,
47
- sync_enabled: organization.sync_enabled,
48
- status: status
49
- }
50
- last_sync = organization.synchronizations.last
51
- if last_sync
52
- h[:message] = last_sync.message
53
- h[:updated_at] = last_sync.updated_at
54
- end
55
-
56
- render json: h, status: code
57
- end
58
-
59
- def organization_status(organization)
60
- last_sync = organization.synchronizations.last
61
- if Maestrano::Connector::Rails::SynchronizationJob.find_running_job(organization.id)
62
- 'RUNNING'
63
- elsif Maestrano::Connector::Rails::SynchronizationJob.find_job(organization.id)
64
- 'ENQUEUED'
65
- else
66
- last_sync&.status || 'DISABLED'
67
- end
68
- end
45
+ render json: {sync_enabled: organization.sync_enabled}
46
+ end
69
47
  end
@@ -6,7 +6,7 @@ module Maestrano::Connector::Rails
6
6
  def perform(name = nil, count = nil)
7
7
  Maestrano::Connector::Rails::Organization.where.not(oauth_provider: nil, encrypted_oauth_token: nil).each do |o|
8
8
  next unless [true, 1].include?(o.sync_enabled)
9
- Maestrano::Connector::Rails::SynchronizationJob.perform_later(o.id, {})
9
+ Maestrano::Connector::Rails::SynchronizationJob.perform_later(o, {})
10
10
  end
11
11
  end
12
12
  end
@@ -7,9 +7,9 @@ module Maestrano::Connector::Rails
7
7
  # * :only_entities => [person, tasks_list]
8
8
  # * :full_sync => true synchronization is performed without date filtering
9
9
  # * :connec_preemption => true|false : preemption is always|never given to connec in case of conflict (if not set, the most recently updated entity is kept)
10
- def perform(organization_id, opts = {})
11
- organization = Maestrano::Connector::Rails::Organization.find(organization_id)
12
- return unless organization&.sync_enabled
10
+ def perform(organization, opts = {})
11
+ return unless organization.sync_enabled
12
+
13
13
  # Check if previous synchronization is still running
14
14
  if Synchronization.where(organization_id: organization.id, status: 'RUNNING').where(created_at: (30.minutes.ago..Time.now)).exists?
15
15
  ConnectorLogger.log('info', organization, 'Synchronization skipped: Previous synchronization is still running')
@@ -105,25 +105,6 @@ module Maestrano::Connector::Rails
105
105
  end
106
106
  end
107
107
 
108
- def self.enqueued?(organization_id)
109
- SynchronizationJob.find_job(organization_id).present? || SynchronizationJob.find_running_job(organization_id).present?
110
- end
111
-
112
- def self.find_job(organization_id)
113
- queue = Sidekiq::Queue.new(:default)
114
- queue.find do |job|
115
- organization_id == job.item['args'][0]['arguments'].first
116
- end
117
- end
118
-
119
- def self.find_running_job(organization_id)
120
- Sidekiq::Workers.new.find do |_, _, work|
121
- work['queue'] == 'default' && work['payload']['args'][0]['arguments'].first == organization_id
122
- end
123
- rescue
124
- nil
125
- end
126
-
127
108
  private
128
109
 
129
110
  def instanciate_entity(entity_name, organization, connec_client, external_client, opts)
@@ -139,7 +120,7 @@ module Maestrano::Connector::Rails
139
120
  entity_instance.push_entities_to_external(mapped_entities[:connec_entities])
140
121
  entity_instance.push_entities_to_connec(mapped_entities[:external_entities])
141
122
  entity_instance.after_sync(last_synchronization_date)
142
-
123
+
143
124
  entity_instance.class.count_and_first(external ? external_entities : connec_entities)
144
125
  end
145
126
  end
@@ -312,7 +312,7 @@ module Maestrano::Connector::Rails::Concerns::Entity
312
312
 
313
313
  Maestrano::Connector::Rails::ConnectorLogger.log('info', @organization, "Sending Connec! #{self.class.connec_entity_name.pluralize} to #{Maestrano::Connector::Rails::External.external_name} #{external_entity_name.pluralize}")
314
314
 
315
- entities_to_send_to_connec = mapped_connec_entities_with_idmaps.map { |mapped_connec_entity_with_idmap|
315
+ entities_to_send_to_connec = mapped_connec_entities_with_idmaps.map{ |mapped_connec_entity_with_idmap|
316
316
  push_entity_to_external(mapped_connec_entity_with_idmap, external_entity_name)
317
317
  }.compact
318
318
 
@@ -324,7 +324,7 @@ module Maestrano::Connector::Rails::Concerns::Entity
324
324
  # with either only the id, or the id + id references
325
325
  proc = lambda do |entity|
326
326
  id = {id: [Maestrano::Connector::Rails::ConnecHelper.id_hash(entity[:idmap].external_id, @organization)]}
327
- body = entity[:completed_hash]&.merge(id) || id
327
+ body = entity[:completed_hash] ? entity[:completed_hash].merge(id) : id
328
328
  batch_op('put', body, entity[:idmap].connec_id, self.class.normalized_connec_entity_name)
329
329
  end
330
330
  batch_calls(entities_to_send_to_connec, proc, self.class.connec_entity_name, true)
@@ -62,7 +62,7 @@ module Maestrano::Connector::Rails
62
62
  end
63
63
 
64
64
  def member?(user)
65
- user_organization_rels.where(user_id: user.id).count.positive?
65
+ user_organization_rels.where(user_id: user.id).count > 0
66
66
  end
67
67
 
68
68
  def remove_member(user)
@@ -108,7 +108,7 @@ module Maestrano::Connector::Rails
108
108
  end
109
109
 
110
110
  def last_synchronization_date
111
- last_successful_synchronization&.updated_at || date_filtering_limit
111
+ (last_successful_synchronization && last_successful_synchronization.updated_at) || date_filtering_limit
112
112
  end
113
113
  end
114
114
  end
@@ -23,7 +23,7 @@ class HomeController < ApplicationController
23
23
 
24
24
  def synchronize
25
25
  return redirect_to(:back) unless is_admin
26
- Maestrano::Connector::Rails::SynchronizationJob.perform_later(current_organization.id, (params['opts'] || {}).merge(forced: true))
26
+ Maestrano::Connector::Rails::SynchronizationJob.perform_later(current_organization, (params['opts'] || {}).merge(forced: true))
27
27
  flash[:info] = 'Synchronization requested'
28
28
  redirect_to(:back)
29
29
  end
@@ -35,7 +35,7 @@ class HomeController < ApplicationController
35
35
  private
36
36
 
37
37
  def start_synchronization(old_sync_state, organization)
38
- Maestrano::Connector::Rails::SynchronizationJob.perform_later(organization.id, {})
38
+ Maestrano::Connector::Rails::SynchronizationJob.perform_later(organization, {})
39
39
  flash[:info] = 'Congrats, you\'re all set up! Your data are now being synced'
40
40
  end
41
41
  end
@@ -87,7 +87,7 @@ describe HomeController, type: :controller do
87
87
  subject { post :synchronize, opts: {'opts' => 'some_opts'} }
88
88
 
89
89
  it 'calls perform_later with opts' do
90
- expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization.id, 'opts' => 'some_opts', forced: true)
90
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization, 'opts' => 'some_opts', forced: true)
91
91
  subject
92
92
  end
93
93
  end
@@ -96,7 +96,7 @@ describe HomeController, type: :controller do
96
96
  subject { post :synchronize }
97
97
 
98
98
  it 'calls perform_later with empty opts hash' do
99
- expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization.id, forced: true)
99
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization, forced: true)
100
100
  subject
101
101
  end
102
102
  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.5.0 ruby lib
5
+ # stub: maestrano-connector-rails 2.0.0.pre.RC1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "maestrano-connector-rails"
9
- s.version = "1.5.0"
9
+ s.version = "2.0.0.pre.RC1"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Maestrano", "Pierre Berard", "Marco Bagnasco"]
14
- s.date = "2016-09-30"
14
+ s.date = "2016-09-01"
15
15
  s.description = "Maestrano is the next generation marketplace for SME applications. See https://maestrano.com for details."
16
16
  s.email = "developers@maestrano.com"
17
17
  s.executables = ["rails"]
@@ -168,7 +168,6 @@ Gem::Specification.new do |s|
168
168
  "spec/dummy/public/422.html",
169
169
  "spec/dummy/public/500.html",
170
170
  "spec/dummy/public/favicon.ico",
171
- "spec/dummy/tmp/cache/.keep",
172
171
  "spec/factories.rb",
173
172
  "spec/integration/complex_id_references_spec.rb",
174
173
  "spec/integration/complex_naming_spec.rb",
@@ -222,8 +221,8 @@ Gem::Specification.new do |s|
222
221
  s.specification_version = 4
223
222
 
224
223
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
225
- s.add_runtime_dependency(%q<rails>, ["~> 4.2"])
226
- s.add_runtime_dependency(%q<maestrano-rails>, [">= 0"])
224
+ s.add_runtime_dependency(%q<rails>, [">= 0"])
225
+ s.add_runtime_dependency(%q<maestrano-rails>, ["= 1.0.0.pre.RC2"])
227
226
  s.add_runtime_dependency(%q<hash_mapper>, [">= 0.2.2"])
228
227
  s.add_runtime_dependency(%q<haml-rails>, [">= 0"])
229
228
  s.add_runtime_dependency(%q<bootstrap-sass>, [">= 0"])
@@ -243,13 +242,14 @@ Gem::Specification.new do |s|
243
242
  s.add_development_dependency(%q<simplecov>, [">= 0"])
244
243
  s.add_development_dependency(%q<rspec-rails>, [">= 0"])
245
244
  s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
245
+ s.add_development_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
246
246
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
247
247
  s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
248
248
  s.add_development_dependency(%q<rubocop>, [">= 0"])
249
249
  s.add_development_dependency(%q<timecop>, [">= 0"])
250
250
  else
251
- s.add_dependency(%q<rails>, ["~> 4.2"])
252
- s.add_dependency(%q<maestrano-rails>, [">= 0"])
251
+ s.add_dependency(%q<rails>, [">= 0"])
252
+ s.add_dependency(%q<maestrano-rails>, ["= 1.0.0.pre.RC2"])
253
253
  s.add_dependency(%q<hash_mapper>, [">= 0.2.2"])
254
254
  s.add_dependency(%q<haml-rails>, [">= 0"])
255
255
  s.add_dependency(%q<bootstrap-sass>, [">= 0"])
@@ -269,14 +269,15 @@ Gem::Specification.new do |s|
269
269
  s.add_dependency(%q<simplecov>, [">= 0"])
270
270
  s.add_dependency(%q<rspec-rails>, [">= 0"])
271
271
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
272
+ s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
272
273
  s.add_dependency(%q<sqlite3>, [">= 0"])
273
274
  s.add_dependency(%q<shoulda-matchers>, [">= 0"])
274
275
  s.add_dependency(%q<rubocop>, [">= 0"])
275
276
  s.add_dependency(%q<timecop>, [">= 0"])
276
277
  end
277
278
  else
278
- s.add_dependency(%q<rails>, ["~> 4.2"])
279
- s.add_dependency(%q<maestrano-rails>, [">= 0"])
279
+ s.add_dependency(%q<rails>, [">= 0"])
280
+ s.add_dependency(%q<maestrano-rails>, ["= 1.0.0.pre.RC2"])
280
281
  s.add_dependency(%q<hash_mapper>, [">= 0.2.2"])
281
282
  s.add_dependency(%q<haml-rails>, [">= 0"])
282
283
  s.add_dependency(%q<bootstrap-sass>, [">= 0"])
@@ -296,6 +297,7 @@ Gem::Specification.new do |s|
296
297
  s.add_dependency(%q<simplecov>, [">= 0"])
297
298
  s.add_dependency(%q<rspec-rails>, [">= 0"])
298
299
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
300
+ s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
299
301
  s.add_dependency(%q<sqlite3>, [">= 0"])
300
302
  s.add_dependency(%q<shoulda-matchers>, [">= 0"])
301
303
  s.add_dependency(%q<rubocop>, [">= 0"])
data/release_notes.md CHANGED
@@ -1,25 +1,36 @@
1
+ ## 1.4.0
2
+
3
+ ### Breaking changes
4
+ * `map_to`, `map_to_connec` and `map_to_external` method have changed and now take two arguments.
5
+ Additionally you should be able to remove all overloading to those methods using the new argument in hash mapper. See [documentation](https://maestrano.atlassian.net/wiki/display/DEV/Mapping+and+synchronization#Mappingandsynchronization-FAQ) for more details
6
+
7
+ ### Features
8
+ * Possibility to use an extended mapper for creation only
9
+ * Possibility to pass additional arguments to hash mapper to use in the after/before hooks
10
+
1
11
  ## 1.3.5
2
12
 
3
- ## Features
13
+
14
+ ### Features
4
15
  * Improve generated files
5
16
  * Adds a built-in way to handle error when updating a deleted record
6
17
 
7
- ## Fixes
18
+ ### Fixes
8
19
  * Adds safety against potential infinite loop
9
20
 
10
21
  ## 1.3.4
11
22
  `maestrano.rb` file should be updated with new synchronization paths.
12
23
 
13
- ## Features
24
+ ### Features
14
25
  * `connec_version_lt?` method
15
26
 
16
- ## Fixes
27
+ ### Fixes
17
28
  * Fixes multi-tenancy of synchronization endpoints
18
29
  * Fixes display of singleton entity
19
30
 
20
31
  ## 1.3.3
21
32
 
22
- ## Fixes
33
+ ### Fixes
23
34
  * Fixes `connec_version` method
24
35
 
25
36
  ## 1.3.2
@@ -61,7 +61,6 @@ describe Maestrano::SynchronizationsController, type: :controller do
61
61
  JSON.parse({
62
62
  group_id: organization.uid,
63
63
  sync_enabled: organization.sync_enabled,
64
- status: 'DISABLED'
65
64
  }.to_json)
66
65
  )
67
66
  end
@@ -79,7 +78,7 @@ describe Maestrano::SynchronizationsController, type: :controller do
79
78
  sync_enabled: organization.sync_enabled,
80
79
  status: sync2.status,
81
80
  message: sync2.message,
82
- updated_at: sync2.updated_at
81
+ updated_at: sync2.updated_at
83
82
  }.to_json)
84
83
  )
85
84
  end
@@ -136,7 +135,7 @@ describe Maestrano::SynchronizationsController, type: :controller do
136
135
  end
137
136
 
138
137
  it 'queues a sync' do
139
- expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization.id, opts)
138
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization, opts)
140
139
  subject
141
140
  end
142
141
  end
@@ -14,9 +14,9 @@ describe Maestrano::Connector::Rails::AllSynchronizationsJob do
14
14
 
15
15
  describe 'perform' do
16
16
  it 'does not calls sync entity' do
17
- expect(Maestrano::Connector::Rails::SynchronizationJob).to_not receive(:perform_later).with(organization_not_linked.id, anything)
18
- expect(Maestrano::Connector::Rails::SynchronizationJob).to_not receive(:perform_later).with(organization_not_active.id, anything)
19
- expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization_to_process.id, anything)
17
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to_not receive(:perform_later).with(organization_not_linked, anything)
18
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to_not receive(:perform_later).with(organization_not_active, anything)
19
+ expect(Maestrano::Connector::Rails::SynchronizationJob).to receive(:perform_later).with(organization_to_process, anything)
20
20
 
21
21
  subject
22
22
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Maestrano::Connector::Rails::SynchronizationJob do
4
4
  let(:organization) { create(:organization) }
5
5
  let(:opts) { {} }
6
- subject { Maestrano::Connector::Rails::SynchronizationJob.perform_now(organization.id, opts) }
6
+ subject { Maestrano::Connector::Rails::SynchronizationJob.perform_now(organization, opts) }
7
7
 
8
8
  def does_not_perform
9
9
  expect_any_instance_of(Maestrano::Connector::Rails::SynchronizationJob).to_not receive(:sync_entity)
@@ -20,7 +20,7 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
20
20
  end
21
21
 
22
22
  context 'with sync_enabled set to true' do
23
- before { organization.update(sync_enabled: true)}
23
+ before { organization.update(sync_enabled: true)}
24
24
 
25
25
  context 'with a sync still running for less than 30 minutes' do
26
26
  let!(:running_sync) { create(:synchronization, organization: organization, status: 'RUNNING', created_at: 29.minutes.ago) }
@@ -77,12 +77,11 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
77
77
 
78
78
  context 'subsequent sync' do
79
79
  let!(:old_sync) { create(:synchronization, partial: false, status: 'SUCCESS', organization: organization) }
80
-
80
+
81
81
  it { performes }
82
82
 
83
83
  it 'calls sync entity on all the organization synchronized entities set to true' do
84
84
  organization.synchronized_entities[organization.synchronized_entities.keys.first] = false
85
- organization.save
86
85
  expect_any_instance_of(Maestrano::Connector::Rails::SynchronizationJob).to receive(:sync_entity).exactly(organization.synchronized_entities.count - 1).times
87
86
 
88
87
  subject
@@ -173,11 +172,11 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
173
172
  context 'with more than 50 entities' do
174
173
  let(:external_entities1) { [*1..50] }
175
174
  let(:external_entities2) { [*51..60] }
176
-
175
+
177
176
  it 'calls perform_sync several time' do
178
177
  expect_any_instance_of(Entities::Person).to receive(:opts_merge!).twice
179
178
  expect(subject).to receive(:perform_sync).twice.and_call_original
180
-
179
+
181
180
  subject.first_sync_entity('person', organization, nil, nil, nil, {}, true)
182
181
  end
183
182
  end
@@ -188,7 +187,7 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
188
187
  it 'calls perform_sync once' do
189
188
  expect_any_instance_of(Entities::Person).to receive(:opts_merge!).once.with({__skip: 0})
190
189
  expect(subject).to receive(:perform_sync).once.and_call_original
191
-
190
+
192
191
  subject.first_sync_entity('person', organization, nil, nil, nil, {}, true)
193
192
  end
194
193
  end
@@ -201,7 +200,7 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
201
200
  it 'calls perform_sync once' do
202
201
  expect_any_instance_of(Entities::Person).to receive(:opts_merge!).once.with({__skip: 0})
203
202
  expect(subject).to receive(:perform_sync).once.and_call_original
204
-
203
+
205
204
  subject.first_sync_entity('person', organization, nil, nil, nil, {}, true)
206
205
  end
207
206
  end
@@ -221,4 +220,4 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
221
220
  end
222
221
  end
223
222
  end
224
- end
223
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maestrano-connector-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 2.0.0.pre.RC1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maestrano
@@ -10,36 +10,36 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-30 00:00:00.000000000 Z
13
+ date: 2016-09-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '4.2'
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '4.2'
28
+ version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: maestrano-rails
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ">="
33
+ - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: '0'
35
+ version: 1.0.0.pre.RC2
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: '0'
42
+ version: 1.0.0.pre.RC2
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: hash_mapper
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -306,6 +306,20 @@ dependencies:
306
306
  - - ">="
307
307
  - !ruby/object:Gem::Version
308
308
  version: '0'
309
+ - !ruby/object:Gem::Dependency
310
+ name: activerecord-jdbcsqlite3-adapter
311
+ requirement: !ruby/object:Gem::Requirement
312
+ requirements:
313
+ - - ">="
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ type: :development
317
+ prerelease: false
318
+ version_requirements: !ruby/object:Gem::Requirement
319
+ requirements:
320
+ - - ">="
321
+ - !ruby/object:Gem::Version
322
+ version: '0'
309
323
  - !ruby/object:Gem::Dependency
310
324
  name: sqlite3
311
325
  requirement: !ruby/object:Gem::Requirement
@@ -520,7 +534,6 @@ files:
520
534
  - spec/dummy/public/422.html
521
535
  - spec/dummy/public/500.html
522
536
  - spec/dummy/public/favicon.ico
523
- - spec/dummy/tmp/cache/.keep
524
537
  - spec/factories.rb
525
538
  - spec/integration/complex_id_references_spec.rb
526
539
  - spec/integration/complex_naming_spec.rb
@@ -579,9 +592,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
579
592
  version: '0'
580
593
  required_rubygems_version: !ruby/object:Gem::Requirement
581
594
  requirements:
582
- - - ">="
595
+ - - ">"
583
596
  - !ruby/object:Gem::Version
584
- version: '0'
597
+ version: 1.3.1
585
598
  requirements: []
586
599
  rubyforge_project:
587
600
  rubygems_version: 2.5.1
@@ -1 +0,0 @@
1
-