kennel 1.11.0 → 1.11.1

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