maestrano-connector-rails 1.2.1 → 1.2.2
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/.rubocop.yml +41 -0
- data/.rubocop_todo.yml +180 -0
- data/.ruby-version +1 -1
- data/CODESHIP.md +3 -1
- data/Gemfile +16 -10
- data/Rakefile +12 -12
- data/VERSION +1 -1
- data/app/controllers/maestrano/account/group_users_controller.rb +5 -7
- data/app/controllers/maestrano/account/groups_controller.rb +5 -7
- data/app/controllers/maestrano/application_controller.rb +1 -1
- data/app/controllers/maestrano/auth/saml_controller.rb +5 -10
- data/app/controllers/maestrano/connec_controller.rb +12 -11
- data/app/controllers/maestrano/sessions_controller.rb +1 -1
- data/app/controllers/maestrano/synchronizations_controller.rb +7 -9
- data/app/controllers/version_controller.rb +9 -0
- data/app/helpers/maestrano/connector/rails/session_helper.rb +0 -2
- data/app/jobs/maestrano/connector/rails/all_synchronizations_job.rb +2 -2
- data/app/jobs/maestrano/connector/rails/push_to_connec_job.rb +8 -7
- data/app/jobs/maestrano/connector/rails/push_to_connec_worker.rb +6 -4
- data/app/jobs/maestrano/connector/rails/synchronization_job.rb +10 -9
- data/app/models/maestrano/connector/rails/complex_entity.rb +1 -1
- data/app/models/maestrano/connector/rails/concerns/complex_entity.rb +10 -12
- data/app/models/maestrano/connector/rails/concerns/connec_helper.rb +20 -25
- data/app/models/maestrano/connector/rails/concerns/connector_logger.rb +1 -1
- data/app/models/maestrano/connector/rails/concerns/entity.rb +63 -69
- data/app/models/maestrano/connector/rails/concerns/entity_base.rb +3 -3
- data/app/models/maestrano/connector/rails/concerns/external.rb +2 -2
- data/app/models/maestrano/connector/rails/concerns/sub_entity_base.rb +13 -15
- data/app/models/maestrano/connector/rails/connector_logger.rb +1 -1
- data/app/models/maestrano/connector/rails/entity.rb +1 -1
- data/app/models/maestrano/connector/rails/external.rb +1 -1
- data/app/models/maestrano/connector/rails/id_map.rb +1 -2
- data/app/models/maestrano/connector/rails/organization.rb +12 -14
- data/app/models/maestrano/connector/rails/sub_entity_base.rb +1 -1
- data/app/models/maestrano/connector/rails/synchronization.rb +17 -15
- data/app/models/maestrano/connector/rails/user.rb +1 -2
- data/app/models/maestrano/connector/rails/user_organization_rel.rb +1 -2
- data/config/routes.rb +4 -2
- data/lib/maestrano/connector/rails.rb +17 -2
- data/lib/maestrano_connector_rails.rb +1 -0
- data/maestrano-connector-rails.gemspec +32 -13
- data/release_notes.md +5 -0
- data/spec/controllers/version_controller_spec.rb +17 -0
- data/spec/dummy/config/application.rb +1 -1
- data/spec/jobs/push_to_connec_worker_spec.rb +16 -5
- data/spec/models/synchronization_spec.rb +9 -9
- data/spec/models/user_organization_rel_spec.rb +1 -1
- data/template/maestrano-connector-template.rb +2 -17
- metadata +90 -16
- data/lib/maestrano-connector-rails.rb +0 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
module Maestrano::Connector::Rails::Concerns::EntityBase
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
|
-
def initialize(organization, connec_client, external_client, opts={})
|
4
|
+
def initialize(organization, connec_client, external_client, opts = {})
|
5
5
|
@organization = organization
|
6
6
|
@connec_client = connec_client
|
7
7
|
@external_client = external_client
|
@@ -22,7 +22,7 @@ module Maestrano::Connector::Rails::Concerns::EntityBase
|
|
22
22
|
|
23
23
|
# This method is called during the webhook workflow only. It should return the hash of arrays of filtered entities
|
24
24
|
# The aim is to have the same filtering as with the Connec! filters on API calls in the webhooks
|
25
|
-
# input :
|
25
|
+
# input :
|
26
26
|
# For non complex entities [unmapped_external_entity1, unmapped_external_entity2]
|
27
27
|
# For complex entities {
|
28
28
|
# external_entities_names[0]: [unmapped_external_entity1, unmapped_external_entity2],
|
@@ -31,4 +31,4 @@ module Maestrano::Connector::Rails::Concerns::EntityBase
|
|
31
31
|
def filter_connec_entities(entities)
|
32
32
|
entities
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -14,7 +14,7 @@ module Maestrano::Connector::Rails::Concerns::External
|
|
14
14
|
# If you add new entities, you need to generate
|
15
15
|
# a migration to add them to existing organizations
|
16
16
|
def entities_list
|
17
|
-
raise
|
17
|
+
raise 'Not implemented'
|
18
18
|
end
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -3,27 +3,21 @@ module Maestrano::Connector::Rails::Concerns::SubEntityBase
|
|
3
3
|
|
4
4
|
module ClassMethods
|
5
5
|
def external?
|
6
|
-
raise
|
6
|
+
raise 'Not implemented'
|
7
7
|
end
|
8
8
|
|
9
9
|
def entity_name
|
10
|
-
raise
|
10
|
+
raise 'Not implemented'
|
11
11
|
end
|
12
12
|
|
13
13
|
def external_entity_name
|
14
|
-
if external?
|
15
|
-
|
16
|
-
else
|
17
|
-
raise "Forbidden call: cannot call external_entity_name for a connec entity"
|
18
|
-
end
|
14
|
+
return entity_name if external?
|
15
|
+
raise 'Forbidden call: cannot call external_entity_name for a connec entity'
|
19
16
|
end
|
20
17
|
|
21
18
|
def connec_entity_name
|
22
|
-
|
23
|
-
|
24
|
-
else
|
25
|
-
entity_name
|
26
|
-
end
|
19
|
+
return entity_name unless external?
|
20
|
+
raise 'Forbidden call: cannot call connec_entity_name for an external entity'
|
27
21
|
end
|
28
22
|
|
29
23
|
def names_hash
|
@@ -49,7 +43,6 @@ module Maestrano::Connector::Rails::Concerns::SubEntityBase
|
|
49
43
|
end
|
50
44
|
end
|
51
45
|
|
52
|
-
|
53
46
|
def map_to(name, entity)
|
54
47
|
mapper = self.class.mapper_classes[name]
|
55
48
|
raise "Impossible mapping from #{self.class.entity_name} to #{name}" unless mapper
|
@@ -57,7 +50,12 @@ module Maestrano::Connector::Rails::Concerns::SubEntityBase
|
|
57
50
|
if self.class.external?
|
58
51
|
mapped_entity = mapper.denormalize(entity).merge(id: self.class.id_from_external_entity_hash(entity))
|
59
52
|
folded_entity = Maestrano::Connector::Rails::ConnecHelper.fold_references(mapped_entity, self.class.references[name] || [], @organization)
|
60
|
-
|
53
|
+
|
54
|
+
if self.class.connec_matching_fields
|
55
|
+
folded_entity[:opts] ||= {}
|
56
|
+
folded_entity[:opts][:matching_fields] = self.class.connec_matching_fields
|
57
|
+
end
|
58
|
+
|
61
59
|
folded_entity
|
62
60
|
else
|
63
61
|
connec_id = entity[:__connec_id]
|
@@ -73,4 +71,4 @@ module Maestrano::Connector::Rails::Concerns::SubEntityBase
|
|
73
71
|
def map_external_entity_with_idmap(external_entity, connec_entity_name, idmap)
|
74
72
|
{entity: map_to(connec_entity_name, external_entity), idmap: idmap}
|
75
73
|
end
|
76
|
-
end
|
74
|
+
end
|
@@ -2,11 +2,11 @@ module Maestrano::Connector::Rails
|
|
2
2
|
class Organization < ActiveRecord::Base
|
3
3
|
# Enable Maestrano for this group
|
4
4
|
maestrano_group_via :provider, :uid, :tenant do |group, maestrano|
|
5
|
-
group.name = (maestrano.name.blank? ?
|
5
|
+
group.name = (maestrano.name.blank? ? 'Default Group name' : maestrano.name)
|
6
6
|
group.tenant = 'default' # To be set from SSO parameter
|
7
|
-
#group.country_alpha2 = maestrano.country
|
8
|
-
#group.free_trial_end_at = maestrano.free_trial_end_at
|
9
|
-
#group.some_required_field = 'some-appropriate-default-value'
|
7
|
+
# group.country_alpha2 = maestrano.country
|
8
|
+
# group.free_trial_end_at = maestrano.free_trial_end_at
|
9
|
+
# group.some_required_field = 'some-appropriate-default-value'
|
10
10
|
end
|
11
11
|
|
12
12
|
def initialize
|
@@ -20,7 +20,7 @@ module Maestrano::Connector::Rails
|
|
20
20
|
#===================================
|
21
21
|
# Encryptions
|
22
22
|
#===================================
|
23
|
-
attr_encrypted_options
|
23
|
+
attr_encrypted_options[:mode] = :per_attribute_iv_and_salt
|
24
24
|
attr_encrypted :oauth_token, key: ::Settings.encryption_key1
|
25
25
|
attr_encrypted :refresh_token, key: ::Settings.encryption_key2
|
26
26
|
|
@@ -45,17 +45,15 @@ module Maestrano::Connector::Rails
|
|
45
45
|
serialize :synchronized_entities
|
46
46
|
|
47
47
|
def add_member(user)
|
48
|
-
if
|
49
|
-
self.user_organization_rels.create(user:user)
|
50
|
-
end
|
48
|
+
user_organization_rels.create(user: user) if tenant == user.tenant && !member?(user)
|
51
49
|
end
|
52
50
|
|
53
51
|
def member?(user)
|
54
|
-
|
52
|
+
user_organization_rels.where(user_id: user.id).count > 0
|
55
53
|
end
|
56
54
|
|
57
55
|
def remove_member(user)
|
58
|
-
|
56
|
+
user_organization_rels.where(user_id: user.id).delete_all
|
59
57
|
end
|
60
58
|
|
61
59
|
def from_omniauth(auth)
|
@@ -64,20 +62,20 @@ module Maestrano::Connector::Rails
|
|
64
62
|
self.oauth_token = auth.credentials.token
|
65
63
|
self.refresh_token = auth.credentials.refresh_token
|
66
64
|
self.instance_url = auth.credentials.instance_url
|
67
|
-
|
65
|
+
save!
|
68
66
|
end
|
69
67
|
|
70
68
|
def last_three_synchronizations_failed?
|
71
|
-
arr =
|
69
|
+
arr = synchronizations.last(3).map(&:error?)
|
72
70
|
arr.count == 3 && arr.uniq == [true]
|
73
71
|
end
|
74
72
|
|
75
73
|
def last_successful_synchronization
|
76
|
-
|
74
|
+
synchronizations.where(status: 'SUCCESS', partial: false).order(updated_at: :desc).first
|
77
75
|
end
|
78
76
|
|
79
77
|
def last_synchronization_date
|
80
78
|
(last_successful_synchronization && last_successful_synchronization.updated_at) || date_filtering_limit
|
81
79
|
end
|
82
80
|
end
|
83
|
-
end
|
81
|
+
end
|
@@ -3,6 +3,10 @@ module Maestrano::Connector::Rails
|
|
3
3
|
# Keeping only 100 synchronizations per organization
|
4
4
|
after_create :clean_synchronizations
|
5
5
|
|
6
|
+
RUNNING_STATUS = 'RUNNING'.freeze
|
7
|
+
ERROR_STATUS = 'ERROR'.freeze
|
8
|
+
SUCCESS_STATUS = 'SUCCESS'.freeze
|
9
|
+
|
6
10
|
#===================================
|
7
11
|
# Associations
|
8
12
|
#===================================
|
@@ -10,39 +14,37 @@ module Maestrano::Connector::Rails
|
|
10
14
|
|
11
15
|
validates :status, presence: true
|
12
16
|
|
13
|
-
def
|
14
|
-
|
17
|
+
def running?
|
18
|
+
status == RUNNING_STATUS
|
15
19
|
end
|
16
20
|
|
17
|
-
def
|
18
|
-
|
21
|
+
def error?
|
22
|
+
status == ERROR_STATUS
|
19
23
|
end
|
20
24
|
|
21
|
-
def
|
22
|
-
|
25
|
+
def success?
|
26
|
+
status == SUCCESS_STATUS
|
23
27
|
end
|
24
28
|
|
25
29
|
def self.create_running(organization)
|
26
|
-
Synchronization.create(organization_id: organization.id, status:
|
30
|
+
Synchronization.create(organization_id: organization.id, status: RUNNING_STATUS)
|
27
31
|
end
|
28
32
|
|
29
33
|
def set_success
|
30
|
-
|
34
|
+
update_attributes(status: SUCCESS_STATUS)
|
31
35
|
end
|
32
36
|
|
33
37
|
def set_error(msg)
|
34
|
-
|
38
|
+
update_attributes(status: ERROR_STATUS, message: msg)
|
35
39
|
end
|
36
40
|
|
37
41
|
def set_partial
|
38
|
-
|
42
|
+
update_attributes(partial: true)
|
39
43
|
end
|
40
44
|
|
41
45
|
def clean_synchronizations
|
42
|
-
count =
|
43
|
-
if count > 100
|
44
|
-
self.organization.synchronizations.order('id ASC').limit(count - 100).destroy_all
|
45
|
-
end
|
46
|
+
count = organization.synchronizations.count
|
47
|
+
organization.synchronizations.order('id ASC').limit(count - 100).destroy_all if count > 100
|
46
48
|
end
|
47
49
|
end
|
48
|
-
end
|
50
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Maestrano::Connector::Rails
|
2
2
|
class User < ActiveRecord::Base
|
3
|
-
|
4
3
|
# Enable Maestrano for this user
|
5
4
|
maestrano_user_via :provider, :uid, :tenant do |user, maestrano|
|
6
5
|
user.uid = maestrano.uid
|
@@ -23,4 +22,4 @@ module Maestrano::Connector::Rails
|
|
23
22
|
validates :email, presence: true
|
24
23
|
validates :tenant, presence: true
|
25
24
|
end
|
26
|
-
end
|
25
|
+
end
|
data/config/routes.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
Maestrano::Connector::Rails::Engine.routes.draw do
|
2
2
|
maestrano_routes
|
3
3
|
|
4
|
+
get 'version', to: 'version#index'
|
5
|
+
|
4
6
|
namespace :maestrano do
|
5
|
-
|
7
|
+
match 'signout', to: 'sessions#destroy', as: 'signout', via: [:get, :post]
|
6
8
|
post 'connec/notifications/:tenant' => 'connec#notifications'
|
7
9
|
|
8
10
|
resources :synchronizations, only: [:show, :create] do
|
@@ -12,4 +14,4 @@ Maestrano::Connector::Rails::Engine.routes.draw do
|
|
12
14
|
end
|
13
15
|
resources :dependancies, only: [:index]
|
14
16
|
end
|
15
|
-
end
|
17
|
+
end
|
@@ -1,7 +1,22 @@
|
|
1
|
-
require 'maestrano'
|
2
1
|
require 'maestrano-rails'
|
2
|
+
|
3
|
+
require 'haml-rails'
|
4
|
+
require 'bootstrap-sass'
|
5
|
+
require 'autoprefixer-rails'
|
6
|
+
|
3
7
|
require 'hash_mapper'
|
4
8
|
|
9
|
+
require 'config'
|
10
|
+
require 'figaro'
|
11
|
+
|
12
|
+
require 'attr_encrypted'
|
13
|
+
|
14
|
+
require 'sidekiq'
|
15
|
+
require 'sidekiq-cron'
|
16
|
+
require 'sidekiq-unique-jobs'
|
17
|
+
require 'sinatra'
|
18
|
+
require 'slim'
|
19
|
+
|
5
20
|
module Maestrano
|
6
21
|
module Connector
|
7
22
|
module Rails
|
@@ -10,4 +25,4 @@ module Maestrano
|
|
10
25
|
end
|
11
26
|
end
|
12
27
|
end
|
13
|
-
end
|
28
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'maestrano/connector/rails'
|
@@ -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.2 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.2"
|
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-05"
|
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
|
+
".rubocop.yml",
|
25
|
+
".rubocop_todo.yml",
|
24
26
|
".ruby-version",
|
25
27
|
"CODESHIP.md",
|
26
28
|
"DEVELOPER.md",
|
@@ -37,6 +39,7 @@ Gem::Specification.new do |s|
|
|
37
39
|
"app/controllers/maestrano/dependancies_controller.rb",
|
38
40
|
"app/controllers/maestrano/sessions_controller.rb",
|
39
41
|
"app/controllers/maestrano/synchronizations_controller.rb",
|
42
|
+
"app/controllers/version_controller.rb",
|
40
43
|
"app/helpers/maestrano/connector/rails/session_helper.rb",
|
41
44
|
"app/jobs/maestrano/connector/rails/all_synchronizations_job.rb",
|
42
45
|
"app/jobs/maestrano/connector/rails/push_to_connec_job.rb",
|
@@ -103,8 +106,8 @@ Gem::Specification.new do |s|
|
|
103
106
|
"lib/generators/connector/templates/synchronizations_controller.rb",
|
104
107
|
"lib/generators/connector/templates/synchronizations_controller_spec.rb",
|
105
108
|
"lib/generators/connector/templates/synchronizations_index.haml",
|
106
|
-
"lib/maestrano-connector-rails.rb",
|
107
109
|
"lib/maestrano/connector/rails.rb",
|
110
|
+
"lib/maestrano_connector_rails.rb",
|
108
111
|
"maestrano-connector-rails.gemspec",
|
109
112
|
"maestrano.png",
|
110
113
|
"release_notes.md",
|
@@ -113,6 +116,7 @@ Gem::Specification.new do |s|
|
|
113
116
|
"spec/controllers/group_users_controller_spec.rb",
|
114
117
|
"spec/controllers/groups_controller_spec.rb",
|
115
118
|
"spec/controllers/synchronizations_controller_spec.rb",
|
119
|
+
"spec/controllers/version_controller_spec.rb",
|
116
120
|
"spec/dummy/README.md",
|
117
121
|
"spec/dummy/Rakefile",
|
118
122
|
"spec/dummy/app/assets/images/.keep",
|
@@ -215,16 +219,20 @@ Gem::Specification.new do |s|
|
|
215
219
|
s.specification_version = 4
|
216
220
|
|
217
221
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
218
|
-
s.add_runtime_dependency(%q<rails>, ["~> 4.
|
222
|
+
s.add_runtime_dependency(%q<rails>, ["~> 4.2"])
|
219
223
|
s.add_runtime_dependency(%q<maestrano-rails>, [">= 0"])
|
220
224
|
s.add_runtime_dependency(%q<hash_mapper>, [">= 0"])
|
221
|
-
s.add_runtime_dependency(%q<sidekiq>, [">= 0"])
|
222
|
-
s.add_runtime_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
223
225
|
s.add_runtime_dependency(%q<haml-rails>, [">= 0"])
|
224
226
|
s.add_runtime_dependency(%q<bootstrap-sass>, [">= 0"])
|
225
227
|
s.add_runtime_dependency(%q<autoprefixer-rails>, [">= 0"])
|
226
228
|
s.add_runtime_dependency(%q<attr_encrypted>, ["~> 1.4.0"])
|
227
229
|
s.add_runtime_dependency(%q<config>, [">= 0"])
|
230
|
+
s.add_runtime_dependency(%q<figaro>, [">= 0"])
|
231
|
+
s.add_runtime_dependency(%q<sidekiq>, [">= 0"])
|
232
|
+
s.add_runtime_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
233
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
234
|
+
s.add_runtime_dependency(%q<sidekiq-cron>, [">= 0"])
|
235
|
+
s.add_runtime_dependency(%q<slim>, [">= 0"])
|
228
236
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
229
237
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
230
238
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -234,18 +242,23 @@ Gem::Specification.new do |s|
|
|
234
242
|
s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
|
235
243
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
236
244
|
s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
|
245
|
+
s.add_development_dependency(%q<rubocop>, [">= 0"])
|
237
246
|
s.add_development_dependency(%q<timecop>, [">= 0"])
|
238
247
|
else
|
239
|
-
s.add_dependency(%q<rails>, ["~> 4.
|
248
|
+
s.add_dependency(%q<rails>, ["~> 4.2"])
|
240
249
|
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
241
250
|
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
242
|
-
s.add_dependency(%q<sidekiq>, [">= 0"])
|
243
|
-
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
244
251
|
s.add_dependency(%q<haml-rails>, [">= 0"])
|
245
252
|
s.add_dependency(%q<bootstrap-sass>, [">= 0"])
|
246
253
|
s.add_dependency(%q<autoprefixer-rails>, [">= 0"])
|
247
254
|
s.add_dependency(%q<attr_encrypted>, ["~> 1.4.0"])
|
248
255
|
s.add_dependency(%q<config>, [">= 0"])
|
256
|
+
s.add_dependency(%q<figaro>, [">= 0"])
|
257
|
+
s.add_dependency(%q<sidekiq>, [">= 0"])
|
258
|
+
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
259
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
260
|
+
s.add_dependency(%q<sidekiq-cron>, [">= 0"])
|
261
|
+
s.add_dependency(%q<slim>, [">= 0"])
|
249
262
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
250
263
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
251
264
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -255,19 +268,24 @@ Gem::Specification.new do |s|
|
|
255
268
|
s.add_dependency(%q<factory_girl_rails>, [">= 0"])
|
256
269
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
257
270
|
s.add_dependency(%q<shoulda-matchers>, [">= 0"])
|
271
|
+
s.add_dependency(%q<rubocop>, [">= 0"])
|
258
272
|
s.add_dependency(%q<timecop>, [">= 0"])
|
259
273
|
end
|
260
274
|
else
|
261
|
-
s.add_dependency(%q<rails>, ["~> 4.
|
275
|
+
s.add_dependency(%q<rails>, ["~> 4.2"])
|
262
276
|
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
263
277
|
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
264
|
-
s.add_dependency(%q<sidekiq>, [">= 0"])
|
265
|
-
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
266
278
|
s.add_dependency(%q<haml-rails>, [">= 0"])
|
267
279
|
s.add_dependency(%q<bootstrap-sass>, [">= 0"])
|
268
280
|
s.add_dependency(%q<autoprefixer-rails>, [">= 0"])
|
269
281
|
s.add_dependency(%q<attr_encrypted>, ["~> 1.4.0"])
|
270
282
|
s.add_dependency(%q<config>, [">= 0"])
|
283
|
+
s.add_dependency(%q<figaro>, [">= 0"])
|
284
|
+
s.add_dependency(%q<sidekiq>, [">= 0"])
|
285
|
+
s.add_dependency(%q<sidekiq-unique-jobs>, [">= 0"])
|
286
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
287
|
+
s.add_dependency(%q<sidekiq-cron>, [">= 0"])
|
288
|
+
s.add_dependency(%q<slim>, [">= 0"])
|
271
289
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
272
290
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
273
291
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -277,6 +295,7 @@ Gem::Specification.new do |s|
|
|
277
295
|
s.add_dependency(%q<factory_girl_rails>, [">= 0"])
|
278
296
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
279
297
|
s.add_dependency(%q<shoulda-matchers>, [">= 0"])
|
298
|
+
s.add_dependency(%q<rubocop>, [">= 0"])
|
280
299
|
s.add_dependency(%q<timecop>, [">= 0"])
|
281
300
|
end
|
282
301
|
end
|