syncano 3.1.4 → 4.0.0.alpha

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.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -1
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +3 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +25 -1
  7. data/Guardfile +22 -4
  8. data/README.md +68 -447
  9. data/Rakefile +48 -5
  10. data/circle.yml +10 -0
  11. data/lib/active_attr/dirty.rb +3 -17
  12. data/lib/active_attr/typecasting/hash_typecaster.rb +34 -0
  13. data/lib/active_attr/typecasting_override.rb +29 -0
  14. data/lib/syncano.rb +53 -92
  15. data/lib/syncano/api.rb +13 -0
  16. data/lib/syncano/connection.rb +97 -0
  17. data/lib/syncano/model/associations.rb +121 -0
  18. data/lib/syncano/{active_record/association → model/associations}/base.rb +5 -5
  19. data/lib/syncano/{active_record/association → model/associations}/belongs_to.rb +6 -6
  20. data/lib/syncano/{active_record/association → model/associations}/has_many.rb +15 -9
  21. data/lib/syncano/{active_record/association → model/associations}/has_one.rb +4 -4
  22. data/lib/syncano/model/base.rb +257 -0
  23. data/lib/syncano/{active_record → model}/callbacks.rb +16 -13
  24. data/lib/syncano/{active_record → model}/scope_builder.rb +53 -69
  25. data/lib/syncano/query_builder.rb +19 -129
  26. data/lib/syncano/resources.rb +126 -0
  27. data/lib/syncano/resources/base.rb +304 -300
  28. data/lib/syncano/resources/collection.rb +19 -223
  29. data/lib/syncano/resources/space.rb +29 -0
  30. data/lib/syncano/schema.rb +86 -0
  31. data/lib/syncano/schema/attribute_definition.rb +83 -0
  32. data/lib/syncano/schema/resource_definition.rb +36 -0
  33. data/lib/syncano/scope.rb +10 -0
  34. data/lib/syncano/version.rb +3 -4
  35. data/spec/integration/syncano_spec.rb +228 -0
  36. data/spec/spec_helper.rb +15 -9
  37. data/spec/unit/api_spec.rb +5 -0
  38. data/spec/unit/connection_spec.rb +137 -0
  39. data/spec/unit/query_builder_spec.rb +75 -0
  40. data/spec/unit/resources/collection_spec.rb +36 -0
  41. data/spec/unit/resources/space_spec.rb +28 -0
  42. data/spec/unit/resources_base_spec.rb +185 -0
  43. data/spec/unit/schema/attribute_definition_spec.rb +18 -0
  44. data/spec/unit/schema/resource_definition_spec.rb +25 -0
  45. data/spec/unit/schema_spec.rb +3532 -0
  46. data/spec/unit/syncano_spec.rb +63 -0
  47. data/syncano.gemspec +8 -14
  48. metadata +85 -210
  49. data/lib/generators/syncano/install_generator.rb +0 -17
  50. data/lib/generators/syncano/templates/initializers/syncano.rb +0 -7
  51. data/lib/syncano/active_record/associations.rb +0 -112
  52. data/lib/syncano/active_record/base.rb +0 -318
  53. data/lib/syncano/batch_queue.rb +0 -58
  54. data/lib/syncano/batch_queue_element.rb +0 -33
  55. data/lib/syncano/clients/base.rb +0 -123
  56. data/lib/syncano/clients/rest.rb +0 -79
  57. data/lib/syncano/clients/sync.rb +0 -164
  58. data/lib/syncano/errors.rb +0 -17
  59. data/lib/syncano/jimson_client.rb +0 -66
  60. data/lib/syncano/packets/auth.rb +0 -27
  61. data/lib/syncano/packets/base.rb +0 -70
  62. data/lib/syncano/packets/call.rb +0 -34
  63. data/lib/syncano/packets/call_response.rb +0 -33
  64. data/lib/syncano/packets/error.rb +0 -19
  65. data/lib/syncano/packets/message.rb +0 -30
  66. data/lib/syncano/packets/notification.rb +0 -39
  67. data/lib/syncano/packets/ping.rb +0 -12
  68. data/lib/syncano/resources/admin.rb +0 -26
  69. data/lib/syncano/resources/api_key.rb +0 -108
  70. data/lib/syncano/resources/data_object.rb +0 -316
  71. data/lib/syncano/resources/folder.rb +0 -88
  72. data/lib/syncano/resources/notifications/base.rb +0 -103
  73. data/lib/syncano/resources/notifications/create.rb +0 -20
  74. data/lib/syncano/resources/notifications/destroy.rb +0 -20
  75. data/lib/syncano/resources/notifications/message.rb +0 -9
  76. data/lib/syncano/resources/notifications/update.rb +0 -24
  77. data/lib/syncano/resources/project.rb +0 -96
  78. data/lib/syncano/resources/role.rb +0 -11
  79. data/lib/syncano/resources/subscription.rb +0 -12
  80. data/lib/syncano/resources/user.rb +0 -65
  81. data/lib/syncano/response.rb +0 -22
  82. data/lib/syncano/sync_connection.rb +0 -133
  83. data/spec/admins_spec.rb +0 -16
  84. data/spec/api_keys_spec.rb +0 -34
  85. data/spec/collections_spec.rb +0 -67
  86. data/spec/data_objects_spec.rb +0 -113
  87. data/spec/folders_spec.rb +0 -39
  88. data/spec/notifications_spec.rb +0 -43
  89. data/spec/projects_spec.rb +0 -35
  90. data/spec/roles_spec.rb +0 -13
  91. data/spec/sync_resources_spec.rb +0 -35
  92. data/spec/syncano_spec.rb +0 -9
@@ -0,0 +1,63 @@
1
+ require_relative '../spec_helper'
2
+
3
+
4
+ describe Syncano do
5
+ describe '#connect' do
6
+ let(:email) { 'kiszka@koza.com' }
7
+ let(:password) { 'kiszonka' }
8
+ let(:email_options) { { email: email, password: password } }
9
+ let(:api_key) { 'kozakoza123' }
10
+
11
+ context 'with credentials in options' do
12
+ context 'email and password' do
13
+ before do
14
+ stub_auth_request
15
+ stub_schema_request
16
+ end
17
+
18
+ specify do
19
+ expect(Syncano.connect(email_options)).to be_kind_of(Syncano::API)
20
+ end
21
+ end
22
+
23
+ context 'api key' do
24
+ before do
25
+ stub_schema_request
26
+ end
27
+
28
+ specify do
29
+ expect(Syncano.connect(api_key: api_key)).to be_kind_of(Syncano::API)
30
+ end
31
+ end
32
+ end
33
+
34
+ context 'with credentials in ENV variables' do
35
+ before do
36
+ @old_api_key = ENV['SYNCANO_API_KEY']
37
+ ENV['SYNCANO_API_KEY'] = api_key
38
+
39
+ stub_schema_request
40
+ end
41
+
42
+ after do
43
+ ENV['SYNCANO_API_KEY'] = @old_api_key
44
+ end
45
+
46
+ specify { expect(Syncano.connect).to be_kind_of(Syncano::API) }
47
+ end
48
+
49
+ def stub_schema_request
50
+ stub_request(:get, endpoint_uri('schema/'))
51
+ .with(headers: { 'X-Api-Key' => api_key })
52
+ .to_return(status: 200, body: generate_body([]))
53
+ end
54
+
55
+ def stub_auth_request
56
+ stub_request(:post, endpoint_uri('account/auth/'))
57
+ .with(body: email_options)
58
+ .to_return(status: 200,
59
+ body: generate_body(id: 15, email: email, first_name: '', last_name: '', account_key: api_key))
60
+ end
61
+
62
+ end
63
+ end
data/syncano.gemspec CHANGED
@@ -6,9 +6,9 @@ require 'syncano/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'syncano'
8
8
  spec.version = Syncano::VERSION
9
- spec.authors = ['Piotr Zadrożny']
9
+ spec.authors = ['Piotr Zadrożny', 'Maciej Lotkowski']
10
10
  spec.email = ['piotr.zadrozny@mindpower.pl']
11
- spec.summary = 'A Ruby client library for Syncano'
11
+ spec.summary = 'A Ruby client library for Syncano 4.0'
12
12
  spec.description = 'A Ruby client that provides convenient interface for the Syncano api.'
13
13
  spec.homepage = 'https://github.com/Syncano/syncano-ruby'
14
14
  spec.license = 'MIT'
@@ -18,17 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'jimson-client', '0.2.3'
22
- spec.add_dependency 'activesupport', '~> 4.1'
23
- spec.add_dependency 'activemodel', '~> 4.1'
24
- spec.add_dependency 'multi_json', '~> 1.10'
25
- spec.add_dependency 'eventmachine', '~> 1.0'
26
- spec.add_dependency 'active_attr', '~> 0.8'
21
+ spec.add_development_dependency 'bundler', '~> 1.7'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
27
23
 
28
- spec.add_development_dependency 'bundler', '~> 1.6'
29
- spec.add_development_dependency 'rake', '~> 10.3'
30
- spec.add_development_dependency 'yard', '~> 0.8'
31
- spec.add_development_dependency 'rspec', '~> 3.1'
32
- spec.add_development_dependency 'mocha', '~> 1.1'
33
- spec.add_development_dependency 'guard-rspec', '~> 4.3'
24
+ spec.add_dependency 'faraday', '~> 0.9'
25
+ spec.add_dependency 'activesupport', '>= 4.0'
26
+ spec.add_dependency 'active_attr', '~> 0.8'
27
+ spec.add_dependency 'dirty_hashy', '~> 0.2'
34
28
  end
metadata CHANGED
@@ -1,208 +1,100 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syncano
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
5
- prerelease:
4
+ version: 4.0.0.alpha
6
5
  platform: ruby
7
6
  authors:
8
7
  - Piotr Zadrożny
8
+ - Maciej Lotkowski
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-15 00:00:00.000000000 Z
12
+ date: 2015-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: jimson-client
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - '='
20
- - !ruby/object:Gem::Version
21
- version: 0.2.3
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - '='
28
- - !ruby/object:Gem::Version
29
- version: 0.2.3
30
- - !ruby/object:Gem::Dependency
31
- name: activesupport
15
+ name: bundler
32
16
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
17
  requirements:
35
- - - ~>
18
+ - - "~>"
36
19
  - !ruby/object:Gem::Version
37
- version: '4.1'
38
- type: :runtime
20
+ version: '1.7'
21
+ type: :development
39
22
  prerelease: false
40
23
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
24
  requirements:
43
- - - ~>
25
+ - - "~>"
44
26
  - !ruby/object:Gem::Version
45
- version: '4.1'
27
+ version: '1.7'
46
28
  - !ruby/object:Gem::Dependency
47
- name: activemodel
29
+ name: rake
48
30
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
31
  requirements:
51
- - - ~>
32
+ - - "~>"
52
33
  - !ruby/object:Gem::Version
53
- version: '4.1'
54
- type: :runtime
34
+ version: '10.0'
35
+ type: :development
55
36
  prerelease: false
56
37
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
38
  requirements:
59
- - - ~>
39
+ - - "~>"
60
40
  - !ruby/object:Gem::Version
61
- version: '4.1'
41
+ version: '10.0'
62
42
  - !ruby/object:Gem::Dependency
63
- name: multi_json
43
+ name: faraday
64
44
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
45
  requirements:
67
- - - ~>
46
+ - - "~>"
68
47
  - !ruby/object:Gem::Version
69
- version: '1.10'
48
+ version: '0.9'
70
49
  type: :runtime
71
50
  prerelease: false
72
51
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
52
  requirements:
75
- - - ~>
53
+ - - "~>"
76
54
  - !ruby/object:Gem::Version
77
- version: '1.10'
55
+ version: '0.9'
78
56
  - !ruby/object:Gem::Dependency
79
- name: eventmachine
57
+ name: activesupport
80
58
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
59
  requirements:
83
- - - ~>
60
+ - - ">="
84
61
  - !ruby/object:Gem::Version
85
- version: '1.0'
62
+ version: '4.0'
86
63
  type: :runtime
87
64
  prerelease: false
88
65
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
66
  requirements:
91
- - - ~>
67
+ - - ">="
92
68
  - !ruby/object:Gem::Version
93
- version: '1.0'
69
+ version: '4.0'
94
70
  - !ruby/object:Gem::Dependency
95
71
  name: active_attr
96
72
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
73
  requirements:
99
- - - ~>
74
+ - - "~>"
100
75
  - !ruby/object:Gem::Version
101
76
  version: '0.8'
102
77
  type: :runtime
103
78
  prerelease: false
104
79
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
80
  requirements:
107
- - - ~>
81
+ - - "~>"
108
82
  - !ruby/object:Gem::Version
109
83
  version: '0.8'
110
84
  - !ruby/object:Gem::Dependency
111
- name: bundler
85
+ name: dirty_hashy
112
86
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
87
  requirements:
115
- - - ~>
88
+ - - "~>"
116
89
  - !ruby/object:Gem::Version
117
- version: '1.6'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: '1.6'
126
- - !ruby/object:Gem::Dependency
127
- name: rake
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: '10.3'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: '10.3'
142
- - !ruby/object:Gem::Dependency
143
- name: yard
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ~>
148
- - !ruby/object:Gem::Version
149
- version: '0.8'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ~>
156
- - !ruby/object:Gem::Version
157
- version: '0.8'
158
- - !ruby/object:Gem::Dependency
159
- name: rspec
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ~>
164
- - !ruby/object:Gem::Version
165
- version: '3.1'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: '3.1'
174
- - !ruby/object:Gem::Dependency
175
- name: mocha
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ~>
180
- - !ruby/object:Gem::Version
181
- version: '1.1'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: '1.1'
190
- - !ruby/object:Gem::Dependency
191
- name: guard-rspec
192
- requirement: !ruby/object:Gem::Requirement
193
- none: false
194
- requirements:
195
- - - ~>
196
- - !ruby/object:Gem::Version
197
- version: '4.3'
198
- type: :development
90
+ version: '0.2'
91
+ type: :runtime
199
92
  prerelease: false
200
93
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
94
  requirements:
203
- - - ~>
95
+ - - "~>"
204
96
  - !ruby/object:Gem::Version
205
- version: '4.3'
97
+ version: '0.2'
206
98
  description: A Ruby client that provides convenient interface for the Syncano api.
207
99
  email:
208
100
  - piotr.zadrozny@mindpower.pl
@@ -210,104 +102,87 @@ executables: []
210
102
  extensions: []
211
103
  extra_rdoc_files: []
212
104
  files:
213
- - .gitignore
105
+ - ".gitignore"
106
+ - ".rspec"
107
+ - ".rubocop.yml"
108
+ - ".ruby-version"
214
109
  - Gemfile
215
110
  - Guardfile
216
111
  - LICENSE.txt
217
112
  - README.md
218
113
  - Rakefile
114
+ - circle.yml
219
115
  - lib/active_attr/dirty.rb
220
- - lib/generators/syncano/install_generator.rb
221
- - lib/generators/syncano/templates/initializers/syncano.rb
116
+ - lib/active_attr/typecasting/hash_typecaster.rb
117
+ - lib/active_attr/typecasting_override.rb
222
118
  - lib/syncano.rb
223
- - lib/syncano/active_record/association/base.rb
224
- - lib/syncano/active_record/association/belongs_to.rb
225
- - lib/syncano/active_record/association/has_many.rb
226
- - lib/syncano/active_record/association/has_one.rb
227
- - lib/syncano/active_record/associations.rb
228
- - lib/syncano/active_record/base.rb
229
- - lib/syncano/active_record/callbacks.rb
230
- - lib/syncano/active_record/scope_builder.rb
231
- - lib/syncano/batch_queue.rb
232
- - lib/syncano/batch_queue_element.rb
233
- - lib/syncano/clients/base.rb
234
- - lib/syncano/clients/rest.rb
235
- - lib/syncano/clients/sync.rb
236
- - lib/syncano/errors.rb
237
- - lib/syncano/jimson_client.rb
238
- - lib/syncano/packets/auth.rb
239
- - lib/syncano/packets/base.rb
240
- - lib/syncano/packets/call.rb
241
- - lib/syncano/packets/call_response.rb
242
- - lib/syncano/packets/error.rb
243
- - lib/syncano/packets/message.rb
244
- - lib/syncano/packets/notification.rb
245
- - lib/syncano/packets/ping.rb
119
+ - lib/syncano/api.rb
120
+ - lib/syncano/connection.rb
121
+ - lib/syncano/model/associations.rb
122
+ - lib/syncano/model/associations/base.rb
123
+ - lib/syncano/model/associations/belongs_to.rb
124
+ - lib/syncano/model/associations/has_many.rb
125
+ - lib/syncano/model/associations/has_one.rb
126
+ - lib/syncano/model/base.rb
127
+ - lib/syncano/model/callbacks.rb
128
+ - lib/syncano/model/scope_builder.rb
246
129
  - lib/syncano/query_builder.rb
247
- - lib/syncano/resources/admin.rb
248
- - lib/syncano/resources/api_key.rb
130
+ - lib/syncano/resources.rb
249
131
  - lib/syncano/resources/base.rb
250
132
  - lib/syncano/resources/collection.rb
251
- - lib/syncano/resources/data_object.rb
252
- - lib/syncano/resources/folder.rb
253
- - lib/syncano/resources/notifications/base.rb
254
- - lib/syncano/resources/notifications/create.rb
255
- - lib/syncano/resources/notifications/destroy.rb
256
- - lib/syncano/resources/notifications/message.rb
257
- - lib/syncano/resources/notifications/update.rb
258
- - lib/syncano/resources/project.rb
259
- - lib/syncano/resources/role.rb
260
- - lib/syncano/resources/subscription.rb
261
- - lib/syncano/resources/user.rb
262
- - lib/syncano/response.rb
263
- - lib/syncano/sync_connection.rb
133
+ - lib/syncano/resources/space.rb
134
+ - lib/syncano/schema.rb
135
+ - lib/syncano/schema/attribute_definition.rb
136
+ - lib/syncano/schema/resource_definition.rb
137
+ - lib/syncano/scope.rb
264
138
  - lib/syncano/version.rb
265
- - spec/admins_spec.rb
266
- - spec/api_keys_spec.rb
267
- - spec/collections_spec.rb
268
- - spec/data_objects_spec.rb
269
- - spec/folders_spec.rb
270
- - spec/notifications_spec.rb
271
- - spec/projects_spec.rb
272
- - spec/roles_spec.rb
139
+ - spec/integration/syncano_spec.rb
273
140
  - spec/spec_helper.rb
274
- - spec/sync_resources_spec.rb
275
- - spec/syncano_spec.rb
141
+ - spec/unit/api_spec.rb
142
+ - spec/unit/connection_spec.rb
143
+ - spec/unit/query_builder_spec.rb
144
+ - spec/unit/resources/collection_spec.rb
145
+ - spec/unit/resources/space_spec.rb
146
+ - spec/unit/resources_base_spec.rb
147
+ - spec/unit/schema/attribute_definition_spec.rb
148
+ - spec/unit/schema/resource_definition_spec.rb
149
+ - spec/unit/schema_spec.rb
150
+ - spec/unit/syncano_spec.rb
276
151
  - syncano.gemspec
277
152
  homepage: https://github.com/Syncano/syncano-ruby
278
153
  licenses:
279
154
  - MIT
155
+ metadata: {}
280
156
  post_install_message:
281
157
  rdoc_options: []
282
158
  require_paths:
283
159
  - lib
284
160
  required_ruby_version: !ruby/object:Gem::Requirement
285
- none: false
286
161
  requirements:
287
- - - ! '>='
162
+ - - ">="
288
163
  - !ruby/object:Gem::Version
289
164
  version: '0'
290
165
  required_rubygems_version: !ruby/object:Gem::Requirement
291
- none: false
292
166
  requirements:
293
- - - ! '>='
167
+ - - ">"
294
168
  - !ruby/object:Gem::Version
295
- version: '0'
169
+ version: 1.3.1
296
170
  requirements: []
297
171
  rubyforge_project:
298
- rubygems_version: 1.8.24
172
+ rubygems_version: 2.2.2
299
173
  signing_key:
300
- specification_version: 3
301
- summary: A Ruby client library for Syncano
174
+ specification_version: 4
175
+ summary: A Ruby client library for Syncano 4.0
302
176
  test_files:
303
- - spec/admins_spec.rb
304
- - spec/api_keys_spec.rb
305
- - spec/collections_spec.rb
306
- - spec/data_objects_spec.rb
307
- - spec/folders_spec.rb
308
- - spec/notifications_spec.rb
309
- - spec/projects_spec.rb
310
- - spec/roles_spec.rb
177
+ - spec/integration/syncano_spec.rb
311
178
  - spec/spec_helper.rb
312
- - spec/sync_resources_spec.rb
313
- - spec/syncano_spec.rb
179
+ - spec/unit/api_spec.rb
180
+ - spec/unit/connection_spec.rb
181
+ - spec/unit/query_builder_spec.rb
182
+ - spec/unit/resources/collection_spec.rb
183
+ - spec/unit/resources/space_spec.rb
184
+ - spec/unit/resources_base_spec.rb
185
+ - spec/unit/schema/attribute_definition_spec.rb
186
+ - spec/unit/schema/resource_definition_spec.rb
187
+ - spec/unit/schema_spec.rb
188
+ - spec/unit/syncano_spec.rb