dashing 0.1.0 → 0.1.2

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.
Files changed (44) hide show
  1. data/README.md +2 -7
  2. data/javascripts/batman.jquery.js +52 -0
  3. data/javascripts/batman.js +3863 -3307
  4. data/javascripts/dashing.coffee +19 -6
  5. data/lib/dashing.rb +3 -1
  6. data/templates/project/Gemfile +1 -1
  7. data/templates/project/assets/images/logo.png +0 -0
  8. data/templates/project/assets/javascripts/application.coffee +6 -6
  9. data/templates/project/assets/stylesheets/application.scss +33 -7
  10. data/templates/project/dashboards/sample.erb +3 -3
  11. data/templates/project/dashboards/sampletv.erb +56 -0
  12. data/templates/project/jobs/buzzwords.rb +1 -1
  13. data/templates/project/jobs/convergence.rb +1 -0
  14. data/templates/project/jobs/sample.rb +4 -0
  15. data/templates/project/jobs/twitter.rb +17 -0
  16. data/templates/project/widgets/clock/clock.coffee +18 -0
  17. data/templates/project/widgets/clock/clock.html +2 -0
  18. data/templates/project/widgets/clock/clock.scss +13 -0
  19. data/templates/project/widgets/comments/comments.coffee +24 -0
  20. data/templates/project/widgets/comments/comments.html +7 -0
  21. data/templates/project/widgets/comments/comments.scss +33 -0
  22. data/templates/project/widgets/graph/graph.coffee +12 -3
  23. data/templates/project/widgets/graph/graph.html +2 -2
  24. data/templates/project/widgets/graph/graph.scss +25 -11
  25. data/templates/project/widgets/iframe/iframe.coffee +9 -0
  26. data/templates/project/widgets/iframe/iframe.html +1 -0
  27. data/templates/project/widgets/iframe/iframe.scss +8 -0
  28. data/templates/project/widgets/image/image.coffee +9 -0
  29. data/templates/project/widgets/image/image.html +1 -0
  30. data/templates/project/widgets/image/image.scss +13 -0
  31. data/templates/project/widgets/list/list.coffee +4 -11
  32. data/templates/project/widgets/list/list.html +4 -1
  33. data/templates/project/widgets/list/list.scss +11 -3
  34. data/templates/project/widgets/meter/meter.html +3 -1
  35. data/templates/project/widgets/meter/meter.scss +9 -11
  36. data/templates/project/widgets/number/number.coffee +2 -4
  37. data/templates/project/widgets/number/number.html +5 -3
  38. data/templates/project/widgets/number/number.scss +9 -5
  39. data/templates/project/widgets/text/text.html +4 -2
  40. data/templates/project/widgets/text/text.scss +12 -5
  41. data/templates/widget/%name%/%name%.coffee.tt +1 -2
  42. metadata +41 -23
  43. data/templates/project/lib/.empty_directory +0 -1
  44. data/templates/project/public/.empty_directory +0 -1
@@ -1,5 +1,5 @@
1
1
  <h1 class="title" data-bind="title"></h1>
2
2
 
3
- <h2 class="value" data-bind="current | prettyNumber"></h2>
3
+ <h2 class="value" data-bind="current | prettyNumber | prepend prefix"></h2>
4
4
 
5
- <p class="text-moreinfo" data-bind="moreinfo"></p>
5
+ <p class="more-info" data-bind="moreinfo"></p>
@@ -1,13 +1,12 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // Sass declarations
3
3
  // ----------------------------------------------------------------------------
4
- $background-color: #2e864f;
5
- $value-color: #fff;
4
+ $background-color: #dc5945;
6
5
 
7
- $title-color: lighten($background-color, 75%);
8
- $moreinfo-color: lighten($background-color, 45%);
6
+ $title-color: rgba(255, 255, 255, 0.7);
7
+ $moreinfo-color: rgba(255, 255, 255, 0.3);
8
+ $tick-color: rgba(0, 0, 0, 0.4);
9
9
 
10
- $graph_color: lighten($background-color, 75%);
11
10
 
12
11
  // ----------------------------------------------------------------------------
13
12
  // Widget-graph styles
@@ -17,14 +16,13 @@ $graph_color: lighten($background-color, 75%);
17
16
  background-color: $background-color;
18
17
  position: relative;
19
18
 
19
+
20
20
  svg {
21
- color: $graph_color;
21
+ position: absolute;
22
22
  opacity: 0.4;
23
23
  fill-opacity: 0.4;
24
- position: absolute;
25
- bottom: 0;
26
- left: 0;
27
- right: 0;
24
+ left: 0px;
25
+ top: 0px;
28
26
  }
29
27
 
30
28
  .title, .value {
@@ -36,7 +34,7 @@ $graph_color: lighten($background-color, 75%);
36
34
  color: $title-color;
37
35
  }
38
36
 
39
- .text-moreinfo {
37
+ .more-info {
40
38
  color: $moreinfo-color;
41
39
  font-weight: 600;
42
40
  font-size: 20px;
@@ -46,6 +44,22 @@ $graph_color: lighten($background-color, 75%);
46
44
  .x_tick {
47
45
  position: absolute;
48
46
  bottom: 0;
47
+ .title {
48
+ font-size: 20px;
49
+ color: $tick-color;
50
+ opacity: 0.5;
51
+ padding-bottom: 3px;
52
+ }
53
+ }
54
+
55
+ .y_ticks {
56
+ font-size: 20px;
57
+ fill: $tick-color;
58
+ fill-opacity: 1;
59
+ }
60
+
61
+ .domain {
62
+ display: none;
49
63
  }
50
64
 
51
65
  }
@@ -0,0 +1,9 @@
1
+ class Dashing.Iframe extends Dashing.Widget
2
+
3
+ ready: ->
4
+ # This is fired when the widget is done being rendered
5
+
6
+ onData: (data) ->
7
+ # Handle incoming data
8
+ # You can access the html node of this widget with `@node`
9
+ # Example: $(@node).fadeOut().fadeIn() will make the node flash each time data comes in.
@@ -0,0 +1 @@
1
+ <iframe data-bind-src="url" frameborder=0></iframe>
@@ -0,0 +1,8 @@
1
+ .widget-iframe {
2
+ padding: 3px 0px 0px 0px !important;
3
+
4
+ iframe {
5
+ width: 100%;
6
+ height: 100%;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ class Dashing.Image extends Dashing.Widget
2
+
3
+ ready: ->
4
+ # This is fired when the widget is done being rendered
5
+
6
+ onData: (data) ->
7
+ # Handle incoming data
8
+ # You can access the html node of this widget with `@node`
9
+ # Example: $(@node).fadeOut().fadeIn() will make the node flash each time data comes in.
@@ -0,0 +1 @@
1
+ <img data-bind-src="image | prepend '/assets'" data-bind-width="width"/>
@@ -0,0 +1,13 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Sass declarations
3
+ // ----------------------------------------------------------------------------
4
+ $background-color: #4b4b4b;
5
+
6
+ // ----------------------------------------------------------------------------
7
+ // Widget-image styles
8
+ // ----------------------------------------------------------------------------
9
+ .widget-image {
10
+
11
+ background-color: $background-color;
12
+
13
+ }
@@ -1,13 +1,6 @@
1
1
  class Dashing.List extends Dashing.Widget
2
- @accessor 'current', Dashing.AnimatedValue
3
-
4
- @accessor 'arrow', ->
5
- if @get('last')
6
- if parseInt(@get('current')) > parseInt(@get('last')) then 'arrow-up' else 'arrow-down'
7
-
8
2
  ready: ->
9
- Batman.setImmediate =>
10
- if @get('unordered')
11
- $(@node).find('ol').remove()
12
- else
13
- $(@node).find('ul').remove()
3
+ if @get('unordered')
4
+ $(@node).find('ol').remove()
5
+ else
6
+ $(@node).find('ul').remove()
@@ -12,4 +12,7 @@
12
12
  <span class="label" data-bind="item.label"></span>
13
13
  <span class="value" data-bind="item.value"></span>
14
14
  </li>
15
- </ul>
15
+ </ul>
16
+
17
+ <p class="more-info" data-bind="moreinfo"></p>
18
+ <p class="updated-at" data-bind="updatedAtMessage"></p>
@@ -1,12 +1,12 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // Sass declarations
3
3
  // ----------------------------------------------------------------------------
4
-
5
4
  $background-color: #12b0c5;
6
5
  $value-color: #fff;
7
6
 
8
- $title-color: lighten($background-color, 45%);
9
- $label-color: lighten($background-color, 45%);
7
+ $title-color: rgba(255, 255, 255, 0.7);
8
+ $label-color: rgba(255, 255, 255, 0.7);
9
+ $moreinfo-color: rgba(255, 255, 255, 0.7);
10
10
 
11
11
  // ----------------------------------------------------------------------------
12
12
  // Widget-list styles
@@ -49,4 +49,12 @@ $label-color: lighten($background-color, 45%);
49
49
  color: $value-color;
50
50
  }
51
51
 
52
+ .updated-at {
53
+ color: rgba(0, 0, 0, 0.3);
54
+ }
55
+
56
+ .more-info {
57
+ color: $moreinfo-color;
58
+ }
59
+
52
60
  }
@@ -2,4 +2,6 @@
2
2
 
3
3
  <input class="meter" data-angleOffset=-125 data-angleArc=250 data-width=200 data-readOnly=true data-bind-value="value | shortenedNumber" data-bind-data-min="min" data-bind-data-max="max">
4
4
 
5
- <p class="text-moreinfo" data-bind="moreinfo"></p>
5
+ <p class="more-info" data-bind="moreinfo"></p>
6
+
7
+ <p class="updated-at" data-bind="updatedAtMessage"></p>
@@ -1,15 +1,12 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // Sass declarations
3
3
  // ----------------------------------------------------------------------------
4
-
5
4
  $background-color: #9c4274;
6
- $value-color: #fff;
7
5
 
8
- $title-color: lighten($background-color, 75%);
9
- $moreinfo-color: lighten($background-color, 45%);
6
+ $title-color: rgba(255, 255, 255, 0.7);
7
+ $moreinfo-color: rgba(255, 255, 255, 0.3);
10
8
 
11
- $meter-background: darken($background-color, 10%);
12
- $meter-foreground: lighten($background-color, 75%);
9
+ $meter-background: darken($background-color, 15%);
13
10
 
14
11
  // ----------------------------------------------------------------------------
15
12
  // Widget-meter styles
@@ -20,18 +17,19 @@ $meter-foreground: lighten($background-color, 75%);
20
17
 
21
18
  input.meter {
22
19
  background-color: $meter-background;
23
- color: $meter-foreground;
20
+ color: #fff;
24
21
  }
25
22
 
26
23
  .title {
27
24
  color: $title-color;
28
25
  }
29
26
 
30
- .text-moreinfo {
27
+ .more-info {
31
28
  color: $moreinfo-color;
32
- font-weight: 600;
33
- font-size: 20px;
34
- margin-top: 0;
29
+ }
30
+
31
+ .updated-at {
32
+ color: rgba(0, 0, 0, 0.3);
35
33
  }
36
34
 
37
35
  }
@@ -8,18 +8,16 @@ class Dashing.Number extends Dashing.Widget
8
8
  if last != 0
9
9
  diff = Math.abs(Math.round((current - last) / last * 100))
10
10
  "#{diff}%"
11
+ else
12
+ ""
11
13
 
12
14
  @accessor 'arrow', ->
13
15
  if @get('last')
14
16
  if parseInt(@get('current')) > parseInt(@get('last')) then 'icon-arrow-up' else 'icon-arrow-down'
15
17
 
16
- @accessor 'statusStyle', ->
17
- "status-#{@get('status')}"
18
-
19
18
  @accessor 'needsAttention', ->
20
19
  @get('status') == 'warning' || @get('status') == 'danger'
21
20
 
22
21
  onData: (data) ->
23
- super
24
22
  if data.status
25
23
  $(@get('node')).addClass("status-#{data.status}")
@@ -1,9 +1,11 @@
1
1
  <h1 class="title"><i data-showif="needsAttention" class="icon-warning-sign"></i><span data-bind="title"></span></h1>
2
2
 
3
- <h2 class="value" data-bind="current | prettyNumber"></h2>
3
+ <h2 class="value" data-bind="current | shortenedNumber | prepend prefix"></h2>
4
4
 
5
5
  <p class="change-rate">
6
- <i data-bind-class="arrow"></i><span data-bind="difference">50%</span>
6
+ <i data-bind-class="arrow"></i><span data-bind="difference"></span>
7
7
  </p>
8
8
 
9
- <p class="text-moreinfo" data-bind="moreinfo">2012-07-26 10:59AM</p>
9
+ <p class="more-info" data-bind="moreinfo | raw"></p>
10
+
11
+ <p class="updated-at" data-bind="updatedAtMessage"></p>
@@ -1,11 +1,11 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // Sass declarations
3
3
  // ----------------------------------------------------------------------------
4
- $background-color: #00b1a4;
4
+ $background-color: #47bbb3;
5
5
  $value-color: #fff;
6
6
 
7
- $title-color: lighten($background-color, 75%);
8
- $moreinfo-color: lighten($background-color, 45%);
7
+ $title-color: rgba(255, 255, 255, 0.7);;
8
+ $moreinfo-color: rgba(255, 255, 255, 0.7);;
9
9
 
10
10
  // ----------------------------------------------------------------------------
11
11
  // Widget-number styles
@@ -23,13 +23,17 @@ $moreinfo-color: lighten($background-color, 45%);
23
23
  }
24
24
 
25
25
  .change-rate {
26
- font-weight: 300;
26
+ font-weight: 500;
27
27
  font-size: 30px;
28
28
  color: $value-color;
29
29
  }
30
30
 
31
- .text-moreinfo {
31
+ .more-info {
32
32
  color: $moreinfo-color;
33
33
  }
34
+
35
+ .updated-at {
36
+ color: rgba(0, 0, 0, 0.3);
37
+ }
34
38
 
35
39
  }
@@ -1,5 +1,7 @@
1
1
  <h1 class="title" data-bind="title"></h1>
2
2
 
3
- <h3 data-bind="text"></h3>
3
+ <h3 data-bind="text | raw"></h3>
4
4
 
5
- <p class="text-moreinfo" data-bind="moreinfo">2012-07-26 10:59AM</p>
5
+ <p class="more-info" data-bind="moreinfo | raw"></p>
6
+
7
+ <p class="updated-at" data-bind="updatedAtMessage"></p>
@@ -1,11 +1,10 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // Sass declarations
3
3
  // ----------------------------------------------------------------------------
4
- $background-color: #ec663c;;
5
- $value-color: #fff;
4
+ $background-color: #ec663c;
6
5
 
7
- $title-color: lighten($background-color, 40%);
8
- $moreinfo-color: lighten($background-color, 30%);
6
+ $title-color: rgba(255, 255, 255, 0.7);
7
+ $moreinfo-color: rgba(255, 255, 255, 0.7);
9
8
 
10
9
  // ----------------------------------------------------------------------------
11
10
  // Widget-text styles
@@ -18,8 +17,16 @@ $moreinfo-color: lighten($background-color, 30%);
18
17
  color: $title-color;
19
18
  }
20
19
 
21
- .text-moreinfo {
20
+ .more-info {
22
21
  color: $moreinfo-color;
23
22
  }
23
+
24
+ .updated-at {
25
+ color: rgba(255, 255, 255, 0.7);
26
+ }
24
27
 
28
+
29
+ &.large h3 {
30
+ font-size: 65px;
31
+ }
25
32
  }
@@ -6,5 +6,4 @@ class Dashing.<%= Thor::Util.camel_case(name) %> extends Dashing.Widget
6
6
  onData: (data) ->
7
7
  # Handle incoming data
8
8
  # You can access the html node of this widget with `@node`
9
- # Example: $(@node).fadeOut().fadeIn() will make the node flash each time data comes in.
10
- super
9
+ # Example: $(@node).fadeOut().fadeIn() will make the node flash each time data comes in.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dashing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-24 00:00:00.000000000 Z
12
+ date: 2012-10-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sass
16
- requirement: &70362542014960 !ruby/object:Gem::Requirement
16
+ requirement: &70210076653740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70362542014960
24
+ version_requirements: *70210076653740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: coffee-script
27
- requirement: &70362542014520 !ruby/object:Gem::Requirement
27
+ requirement: &70210076653300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70362542014520
35
+ version_requirements: *70210076653300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sinatra
38
- requirement: &70362541997720 !ruby/object:Gem::Requirement
38
+ requirement: &70210076652860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70362541997720
46
+ version_requirements: *70210076652860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sinatra-contrib
49
- requirement: &70362541997120 !ruby/object:Gem::Requirement
49
+ requirement: &70210076652420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70362541997120
57
+ version_requirements: *70210076652420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: thin
60
- requirement: &70362541996320 !ruby/object:Gem::Requirement
60
+ requirement: &70210076652000 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70362541996320
68
+ version_requirements: *70210076652000
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rufus-scheduler
71
- requirement: &70362541995640 !ruby/object:Gem::Requirement
71
+ requirement: &70210076651580 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70362541995640
79
+ version_requirements: *70210076651580
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: thor
82
- requirement: &70362541995120 !ruby/object:Gem::Requirement
82
+ requirement: &70210076651160 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70362541995120
90
+ version_requirements: *70210076651160
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sprockets
93
- requirement: &70362541994400 !ruby/object:Gem::Requirement
93
+ requirement: &70210076650740 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,8 +98,13 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70362541994400
102
- description: An elegant, simple, beautiful, & flexible framework for creating dashboards.
101
+ version_requirements: *70210076650740
102
+ description: This framework lets you build & easily layout dashboards with your own
103
+ custom widgets. Use it to make a status boards for your ops team, or use it to track
104
+ signups, conversion rates, or whatever else metrics you'd like to see in one spot.
105
+ Included with the framework are ready-made widgets for you to use or customize.
106
+ All of this code was extracted out of a project at Shopify that displays dashboards
107
+ on TVs around the office.
103
108
  email: daniel.beauchamp@shopify.com
104
109
  executables:
105
110
  - dashing
@@ -119,6 +124,7 @@ files:
119
124
  - templates/project/assets/fonts/fontawesome-webfont.ttf
120
125
  - templates/project/assets/fonts/fontawesome-webfont.woff
121
126
  - templates/project/assets/images/favicon.ico
127
+ - templates/project/assets/images/logo.png
122
128
  - templates/project/assets/javascripts/application.coffee
123
129
  - templates/project/assets/javascripts/d3.v2.min.js
124
130
  - templates/project/assets/javascripts/dashing.gridster.coffee
@@ -132,14 +138,28 @@ files:
132
138
  - templates/project/config.ru
133
139
  - templates/project/dashboards/layout.erb
134
140
  - templates/project/dashboards/sample.erb
141
+ - templates/project/dashboards/sampletv.erb
135
142
  - templates/project/Gemfile
136
143
  - templates/project/jobs/buzzwords.rb
137
144
  - templates/project/jobs/convergence.rb
138
145
  - templates/project/jobs/sample.rb
146
+ - templates/project/jobs/twitter.rb
139
147
  - templates/project/README.md
148
+ - templates/project/widgets/clock/clock.coffee
149
+ - templates/project/widgets/clock/clock.html
150
+ - templates/project/widgets/clock/clock.scss
151
+ - templates/project/widgets/comments/comments.coffee
152
+ - templates/project/widgets/comments/comments.html
153
+ - templates/project/widgets/comments/comments.scss
140
154
  - templates/project/widgets/graph/graph.coffee
141
155
  - templates/project/widgets/graph/graph.html
142
156
  - templates/project/widgets/graph/graph.scss
157
+ - templates/project/widgets/iframe/iframe.coffee
158
+ - templates/project/widgets/iframe/iframe.html
159
+ - templates/project/widgets/iframe/iframe.scss
160
+ - templates/project/widgets/image/image.coffee
161
+ - templates/project/widgets/image/image.html
162
+ - templates/project/widgets/image/image.scss
143
163
  - templates/project/widgets/list/list.coffee
144
164
  - templates/project/widgets/list/list.html
145
165
  - templates/project/widgets/list/list.scss
@@ -155,12 +175,10 @@ files:
155
175
  - templates/widget/%name%/%name%.coffee.tt
156
176
  - templates/widget/%name%/%name%.html
157
177
  - templates/widget/%name%/%name%.scss.tt
158
- - templates/project/lib/.empty_directory
159
- - templates/project/public/.empty_directory
160
178
  - lib/dashing.rb
161
179
  - !binary |-
162
180
  YmluL2Rhc2hpbmc=
163
- homepage: http://Dashing.shopify.com
181
+ homepage: http://dashing.shopify.com
164
182
  licenses: []
165
183
  post_install_message:
166
184
  rdoc_options: []
@@ -183,5 +201,5 @@ rubyforge_project:
183
201
  rubygems_version: 1.8.11
184
202
  signing_key:
185
203
  specification_version: 3
186
- summary: A simple & flexible framework for creating dashboards.
204
+ summary: A DIY framework for creating dashboards.
187
205
  test_files: []