kennel 1.11.0 → 1.11.1

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
  SHA256:
3
- metadata.gz: 7f3b1eb54a6d3249228c90e6313b1b014ce75463da52f3bf9a242ab81aa45b84
4
- data.tar.gz: 1e2650fc9d44b68e91336afea05f711b90bca96bb571be027404ad103d94043b
3
+ metadata.gz: 212069a8189feba7b905038e769d4e246442ad121bc5300fa05896424fa93acc
4
+ data.tar.gz: e7af63be1ade43d44bcc730c40e30028ba41515fe6256d0cff7ffb0b97409907
5
5
  SHA512:
6
- metadata.gz: 603e35948978e66351219b4b34d3ae35ef3d95a48f77a6ebed8fdc167edcba73ebf2be8910779ce62354f2ce34df9a457a882aaef18aac938e58ed6792476482
7
- data.tar.gz: 37c00fd53b6767e7f49592eb6f46d63e13289bf64fac7dbbb339a22cb12b51f7bddd2d0a685c95968dda972cb0d1e3a4a0c188ad40a7b52a1b92d5ea4298e73b
6
+ metadata.gz: 5f11b3467b839e3f13c788e1ce94879cc1b5e83bf5b721be83741482d9aaa405240410c639074ee08fea6f282e9396a500c8cbe11453b15eaa2185616635686e
7
+ data.tar.gz: a3155e7bd8819e2afeb8e3621b197a83c90d55a3a80a7a5d9ea2641f2de251a258979c7c986552c4cdd99657b3aa0801990479aa1bcec755b0714a126f239767
@@ -104,13 +104,19 @@ module Kennel
104
104
  # discard styles/conditional_formats/aggregator if nothing would change when we applied (both are default or nil)
105
105
  def ignore_request_defaults(expected, actual, level1, level2)
106
106
  expected[level1].each_with_index do |e_w, wi|
107
- (e_w.dig(level2, :requests) || []).each_with_index do |e_r, ri|
108
- next unless a_r = actual.dig(level1, wi, level2, :requests, ri) # skip newly added widgets/requests
109
- REQUEST_DEFAULTS.each do |key, default|
110
- if [a_r, e_r].all? { |r| r[key].nil? || r[key] == default }
111
- a_r.delete(key)
112
- e_r.delete(key)
113
- end
107
+ e_r = e_w.dig(level2, :requests) || []
108
+ a_r = actual.dig(level1, wi, level2, :requests) || []
109
+ ignore_defaults e_r, a_r, REQUEST_DEFAULTS
110
+ end
111
+ end
112
+
113
+ def ignore_defaults(expected, actual, defaults)
114
+ expected.each_with_index do |e, i|
115
+ next unless a = actual[i] # skip newly added
116
+ defaults.each do |key, default|
117
+ if [a, e].all? { |r| r[key].nil? || r[key] == default }
118
+ a.delete(key)
119
+ e.delete(key)
114
120
  end
115
121
  end
116
122
  end
@@ -6,6 +6,11 @@ module Kennel
6
6
  include OptionalValidations
7
7
 
8
8
  API_LIST_INCOMPLETE = true
9
+ COPIED_WIDGET_VALUES = [:board_id, :isShared].freeze
10
+ WIDGET_DEFAULTS = {
11
+ time: {},
12
+ timeframe: "1h"
13
+ }.freeze
9
14
 
10
15
  settings :id, :board_title, :description, :widgets, :kennel_id
11
16
 
@@ -58,13 +63,15 @@ module Kennel
58
63
  actual.delete(:showGlobalTimeOnboarding)
59
64
  actual[:template_variables] ||= []
60
65
  (actual[:widgets] || []).each do |w|
61
- # api randomly returns time.live_span or timeframe
62
- w[:timeframe] = w.delete(:time)[:live_span] if w[:time]
66
+ # api randomly returns time.live_span or timeframe or empty time hash
67
+ if w.dig(:time, :live_span)
68
+ w[:timeframe] = w[:time].delete(:live_span)
69
+ end
63
70
 
64
- w.delete :board_id # copied value, can ignore
65
- w.delete :isShared # copied value, can ignore
71
+ COPIED_WIDGET_VALUES.each { |v| w.delete v }
66
72
  end
67
73
 
74
+ ignore_defaults as_json[:widgets], actual[:widgets], WIDGET_DEFAULTS
68
75
  ignore_request_defaults as_json, actual, :widgets, :tile_def
69
76
 
70
77
  super
@@ -79,7 +86,7 @@ module Kennel
79
86
  def validate_json(data)
80
87
  # check for fields that are unsettable
81
88
  data[:widgets].each do |w|
82
- [:isShared, :board_id].each do |ignored|
89
+ COPIED_WIDGET_VALUES.each do |ignored|
83
90
  if w.key?(ignored)
84
91
  invalid! "remove definition #{ignored}, it is unsettable and will always produce a diff"
85
92
  end
@@ -119,8 +126,7 @@ module Kennel
119
126
  {
120
127
  title: true,
121
128
  legend: false,
122
- legend_size: "0",
123
- timeframe: "1h"
129
+ legend_size: "0"
124
130
  }
125
131
  else
126
132
  {}
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.11.0"
3
+ VERSION = "1.11.1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-27 00:00:00.000000000 Z
11
+ date: 2018-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday