kennel 1.49.0 → 1.50.0

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