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

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