kennel 1.49.0 → 1.50.0

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: 7f0aabf5d65787da727c8f2fe6d4e42a3d88bca6cf31a426b2b29efbacc29316
4
- data.tar.gz: 8058d85578b7bf7247c26e50c8759fb4036977f22f321068283c1da77cf5e25e
3
+ metadata.gz: d3cb84b8e35c48c089b3f355988bb8fff0f7d1c03ce863fe68bf77cd94622703
4
+ data.tar.gz: 79fb571d0ebfe6152ce269377af8d808a25b549cc0fdf0ee2b52b4f92b243d61
5
5
  SHA512:
6
- metadata.gz: 80e9d102685107b747629f2df6045b30f588a1f9f9f7df2a668bfa7513fb96f47606c929d5276734282031328766210ae7c8dc260ef0e259a6cac4e36e915b22
7
- data.tar.gz: 762d5d95e419700fd9deb1b0c56fcaed33a460e3c65a4ed8d8f4ebd8c60875438d402423b48d62a086efe3b79019e72b64fd43bb59251ed20308039735f9f01a
6
+ metadata.gz: 20087313f79d2ac2f019ccefd341731c6ede13d2df75e4c06eca980d67fd672727c72253a32c1e30f54c81d20f60c5944f22b31fac69e534f412149ca632e907
7
+ data.tar.gz: 062a7e8269ba9bacec21e271cdb42208b4c93b6a6d478bb78895cd82969a88fcb4b4528a5a5e967a2d17052bc5d93120999e08e4f80963d0673a768ea906cbf7
@@ -73,12 +73,15 @@ module Kennel
73
73
 
74
74
  def as_json
75
75
  return @json if @json
76
+ all_widgets = render_definitions + widgets
77
+ expand_q all_widgets
78
+
76
79
  @json = {
77
80
  layout_type: layout_type,
78
81
  title: "#{title}#{LOCK}",
79
82
  description: description,
80
83
  template_variables: render_template_variables,
81
- widgets: render_definitions + widgets
84
+ widgets: all_widgets
82
85
  }
83
86
 
84
87
  @json[:id] = id if id
@@ -110,6 +113,20 @@ module Kennel
110
113
 
111
114
  private
112
115
 
116
+ # creates queries from metadata to avoid having to keep q and expression in sync
117
+ #
118
+ # {q: :metadata, metadata: [{expression: "sum:bar", alias_name: "foo"}, ...], }
119
+ # -> {q: "sum:bar, ...", metadata: ..., }
120
+ def expand_q(widgets)
121
+ widgets = widgets.flat_map { |w| w.dig(:definition, :widgets) || w } # expand groups
122
+ widgets.each do |w|
123
+ w.dig(:definition, :requests)&.each do |request|
124
+ next unless request.is_a?(Hash) && request[:q] == :metadata
125
+ request[:q] = request.fetch(:metadata).map { |m| m.fetch(:expression) }.join(", ")
126
+ end
127
+ end
128
+ end
129
+
113
130
  def resolve_link(id, id_map)
114
131
  return id unless tracking_id?(id)
115
132
  id_map[id] ||
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.49.0"
3
+ VERSION = "1.50.0"
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.49.0
4
+ version: 1.50.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-20 00:00:00.000000000 Z
11
+ date: 2019-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday