airship-ruby 1.1.5 → 1.1.6

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: 4ba8bb1d0a7ec6945ac66b4f62497df1f1243bbb
4
- data.tar.gz: acef833736c39f744c3eb8205fac2dc5d6420279
3
+ metadata.gz: d64943505df97e925d93c86d754852868385b1b7
4
+ data.tar.gz: c6092d944cbdb7f09f8c69dca03646d629747a57
5
5
  SHA512:
6
- metadata.gz: f603b44c73f6713c2731767575a61f77663f9e2b99b39385c1947e65be845b0db7f4880f79f45cfa3d30e187868e9d3e630a352eb16edf5c4b22e9e04f359350
7
- data.tar.gz: aaa4a4301b68830d4944b3d3b28a184ac21e282250ec725fb45c184116794173fbb8c04ce16859b55573a24a1cb16cc68cbdcad8ca13cc7a2f99cd9446c713ca
6
+ metadata.gz: 0c21eaa03cde9ab5b96f799a25b4fa57611f6bdaa1b23257403b17a44ad4cde557f536581e93545ba63e9bf63bb3db25603ec5d559b72610935f75a6b7fd4c15
7
+ data.tar.gz: 7fffa2fec753f365d37028a235aa7760911d6b38abbdaa42f3a5fc75c6e81bbf1186a83f50b7d945bf59f3f45944ddc75e0d4442d44f3bb6adde418bbe0ced38
data/airship-ruby.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "airship-ruby"
3
- s.version = "1.1.5"
3
+ s.version = "1.1.6"
4
4
  s.licenses = ["MIT"]
5
5
  s.summary = "Airship Ruby SDK"
6
6
  s.description = "Ruby SDK"
data/lib/airship-ruby.rb CHANGED
@@ -98,11 +98,11 @@ class Airship
98
98
  "additionalProperties" => false,
99
99
  },
100
100
  },
101
- "required" => ["id", "display_name"],
101
+ "required" => ["id"],
102
102
  "additionalProperties" => false,
103
103
  },
104
104
  },
105
- "required" => ["id", "display_name"],
105
+ "required" => ["id"],
106
106
  "additionalProperties" => false,
107
107
  }
108
108
 
@@ -213,6 +213,8 @@ class Airship
213
213
  end
214
214
 
215
215
  def enabled?(control_short_name, object, default_value=false)
216
+ object = self._shallow_copy(object)
217
+
216
218
  validation_errors = JSON::Validator.fully_validate(SCHEMA, object)
217
219
  if validation_errors.size > 0
218
220
  puts validation_errors[0]
@@ -221,9 +223,7 @@ class Airship
221
223
 
222
224
  object = self._clone_object(object)
223
225
 
224
- if object['type'].nil?
225
- object['type'] = 'User'
226
- end
226
+ self._maybe_add_fields(object)
227
227
 
228
228
  error = self._validate_nesting(object) || self._validate_anonymous(object) || self._maybe_transform_id(object)
229
229
 
@@ -277,6 +277,8 @@ class Airship
277
277
  end
278
278
 
279
279
  def variation(control_short_name, object, default_value=nil)
280
+ object = self._shallow_copy(object)
281
+
280
282
  validation_errors = JSON::Validator.fully_validate(SCHEMA, object)
281
283
  if validation_errors.size > 0
282
284
  puts validation_errors[0]
@@ -285,9 +287,7 @@ class Airship
285
287
 
286
288
  object = self._clone_object(object)
287
289
 
288
- if object['type'].nil?
289
- object['type'] = 'User'
290
- end
290
+ self._maybe_add_fields(object)
291
291
 
292
292
  error = self._validate_nesting(object) || self._validate_anonymous(object) || self._maybe_transform_id(object)
293
293
 
@@ -341,6 +341,8 @@ class Airship
341
341
  end
342
342
 
343
343
  def eligible?(control_short_name, object, default_value=false)
344
+ object = self._shallow_copy(object)
345
+
344
346
  validation_errors = JSON::Validator.fully_validate(SCHEMA, object)
345
347
  if validation_errors.size > 0
346
348
  puts validation_errors[0]
@@ -349,9 +351,7 @@ class Airship
349
351
 
350
352
  object = self._clone_object(object)
351
353
 
352
- if object['type'].nil?
353
- object['type'] = 'User'
354
- end
354
+ self._maybe_add_fields(object)
355
355
 
356
356
  error = self._validate_nesting(object) || self._validate_anonymous(object) || self._maybe_transform_id(object)
357
357
 
@@ -406,14 +406,16 @@ class Airship
406
406
 
407
407
  protected
408
408
 
409
- def _enrich_with_metadata(control_short_name, stats)
410
- control_info = @gating_info_map[control_short_name]
411
-
412
- if !control_info.nil?
413
- stats['sdk_gate_control_id'] = control_info['id']
409
+ def _shallow_copy(object)
410
+ copy = {}
411
+ if object.is_a?(Hash)
412
+ object.each do |key, value|
413
+ copy[key.to_s] = self._shallow_copy(value)
414
+ end
415
+ else
416
+ return object
414
417
  end
415
-
416
- stats['sdk_env_id'] = @gating_info['env']['id']
418
+ copy
417
419
  end
418
420
 
419
421
  def _get_gating_info_map(gating_info)
@@ -981,4 +983,28 @@ class Airship
981
983
 
982
984
  nil
983
985
  end
986
+
987
+ def _enrich_with_metadata(control_short_name, stats)
988
+ control_info = @gating_info_map[control_short_name]
989
+
990
+ if !control_info.nil?
991
+ stats['sdk_gate_control_id'] = control_info['id']
992
+ end
993
+
994
+ stats['sdk_env_id'] = @gating_info['env']['id']
995
+ end
996
+
997
+ def _maybe_add_fields(object)
998
+ if object['type'].nil?
999
+ object['type'] = 'User'
1000
+ end
1001
+
1002
+ if object['display_name'].nil?
1003
+ object['display_name'] = object['id'].to_s
1004
+ end
1005
+
1006
+ if !object['group'].nil? && object['group']['display_name'].nil?
1007
+ object['group']['display_name'] = object['group']['id'].to_s
1008
+ end
1009
+ end
984
1010
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airship-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airship Dev Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-05 00:00:00.000000000 Z
11
+ date: 2018-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday