logster 2.1.1 → 2.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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +19 -19
  3. data/.rubocop.yml +1 -1
  4. data/.travis.yml +16 -16
  5. data/CHANGELOG.md +172 -169
  6. data/Gemfile +4 -4
  7. data/Guardfile +8 -8
  8. data/LICENSE.txt +22 -22
  9. data/README.md +99 -99
  10. data/Rakefile +21 -21
  11. data/assets/fonts/FontAwesome.otf +0 -0
  12. data/assets/fonts/fontawesome-webfont.eot +0 -0
  13. data/assets/fonts/fontawesome-webfont.svg +639 -639
  14. data/assets/fonts/fontawesome-webfont.ttf +0 -0
  15. data/assets/fonts/fontawesome-webfont.woff +0 -0
  16. data/assets/fonts/fontawesome-webfont.woff2 +0 -0
  17. data/assets/images/Icon-144_rounded.png +0 -0
  18. data/assets/images/Icon-144_square.png +0 -0
  19. data/assets/images/icon_144x144.png +0 -0
  20. data/assets/images/icon_64x64.png +0 -0
  21. data/assets/javascript/client-app.js +106 -100
  22. data/assets/stylesheets/client-app.css +1 -1
  23. data/build_client_app.sh +0 -0
  24. data/client-app/.editorconfig +20 -20
  25. data/client-app/.ember-cli +9 -9
  26. data/client-app/.eslintignore +19 -19
  27. data/client-app/.eslintrc.js +46 -46
  28. data/client-app/.gitignore +23 -23
  29. data/client-app/.travis.yml +27 -27
  30. data/client-app/.watchmanconfig +3 -3
  31. data/client-app/README.md +57 -57
  32. data/client-app/app/app.js +0 -0
  33. data/client-app/app/components/actions-menu.js +43 -37
  34. data/client-app/app/components/env-tab.js +80 -44
  35. data/client-app/app/components/message-info.js +0 -0
  36. data/client-app/app/components/message-row.js +0 -0
  37. data/client-app/app/components/panel-resizer.js +0 -0
  38. data/client-app/app/components/tab-contents.js +27 -27
  39. data/client-app/app/components/tabbed-section.js +0 -0
  40. data/client-app/app/components/time-formatter.js +0 -0
  41. data/client-app/app/components/update-time.js +0 -0
  42. data/client-app/app/controllers/index.js +0 -0
  43. data/client-app/app/controllers/show.js +0 -0
  44. data/client-app/app/index.html +29 -29
  45. data/client-app/app/initializers/app-init.js +67 -72
  46. data/client-app/app/lib/preload.js +20 -14
  47. data/client-app/app/lib/utilities.js +149 -140
  48. data/client-app/app/models/message-collection.js +0 -0
  49. data/client-app/app/models/message.js +100 -100
  50. data/client-app/app/resolver.js +0 -0
  51. data/client-app/app/router.js +0 -0
  52. data/client-app/app/routes/index.js +0 -0
  53. data/client-app/app/routes/show.js +0 -0
  54. data/client-app/app/styles/app.css +527 -521
  55. data/client-app/app/templates/application.hbs +2 -2
  56. data/client-app/app/templates/components/actions-menu.hbs +12 -12
  57. data/client-app/app/templates/components/env-tab.hbs +10 -10
  58. data/client-app/app/templates/components/message-info.hbs +41 -41
  59. data/client-app/app/templates/components/message-row.hbs +15 -15
  60. data/client-app/app/templates/components/panel-resizer.hbs +3 -3
  61. data/client-app/app/templates/components/tabbed-section.hbs +10 -10
  62. data/client-app/app/templates/components/time-formatter.hbs +1 -1
  63. data/client-app/app/templates/index.hbs +58 -58
  64. data/client-app/app/templates/show.hbs +7 -7
  65. data/client-app/config/environment.js +51 -51
  66. data/client-app/config/optional-features.json +3 -3
  67. data/client-app/config/targets.js +18 -18
  68. data/client-app/ember-cli-build.js +29 -29
  69. data/client-app/package-lock.json +11365 -11365
  70. data/client-app/package.json +56 -56
  71. data/client-app/testem.js +25 -25
  72. data/client-app/tests/index.html +34 -34
  73. data/client-app/tests/integration/components/env-tab-test.js +123 -73
  74. data/client-app/tests/integration/components/message-info-test.js +111 -26
  75. data/client-app/tests/test-helper.js +8 -8
  76. data/client-app/tests/unit/controllers/index-test.js +12 -12
  77. data/client-app/tests/unit/controllers/show-test.js +12 -12
  78. data/client-app/tests/unit/initializers/app-init-test.js +31 -31
  79. data/client-app/tests/unit/routes/index-test.js +11 -11
  80. data/client-app/tests/unit/routes/show-test.js +11 -11
  81. data/lib/examples/sidekiq_logster_reporter.rb +21 -21
  82. data/lib/logster.rb +54 -54
  83. data/lib/logster/base_store.rb +141 -141
  84. data/lib/logster/configuration.rb +26 -25
  85. data/lib/logster/defer_logger.rb +14 -14
  86. data/lib/logster/ignore_pattern.rb +65 -65
  87. data/lib/logster/logger.rb +113 -113
  88. data/lib/logster/message.rb +212 -212
  89. data/lib/logster/middleware/debug_exceptions.rb +26 -26
  90. data/lib/logster/middleware/reporter.rb +55 -55
  91. data/lib/logster/middleware/viewer.rb +222 -221
  92. data/lib/logster/rails/railtie.rb +63 -63
  93. data/lib/logster/redis_store.rb +566 -566
  94. data/lib/logster/scheduler.rb +54 -54
  95. data/lib/logster/version.rb +3 -3
  96. data/lib/logster/web.rb +14 -14
  97. data/logster.gemspec +35 -35
  98. data/test/examples/test_sidekiq_reporter_example.rb +46 -46
  99. data/test/fake_data/Gemfile +4 -4
  100. data/test/fake_data/generate.rb +10 -10
  101. data/test/logster/middleware/test_reporter.rb +19 -19
  102. data/test/logster/middleware/test_viewer.rb +96 -96
  103. data/test/logster/test_base_store.rb +147 -147
  104. data/test/logster/test_defer_logger.rb +34 -34
  105. data/test/logster/test_ignore_pattern.rb +41 -41
  106. data/test/logster/test_logger.rb +86 -86
  107. data/test/logster/test_message.rb +119 -119
  108. data/test/logster/test_redis_rate_limiter.rb +230 -230
  109. data/test/logster/test_redis_store.rb +720 -720
  110. data/test/test_helper.rb +38 -38
  111. data/vendor/assets/javascripts/logster.js.erb +39 -39
  112. metadata +1 -10
  113. data/client-app/app/components/tab-link.js +0 -5
  114. data/client-app/tests/integration/components/actions-menu-test.js +0 -26
  115. data/client-app/tests/integration/components/message-row-test.js +0 -26
  116. data/client-app/tests/integration/components/panel-resizer-test.js +0 -26
  117. data/client-app/tests/integration/components/tab-contents-test.js +0 -26
  118. data/client-app/tests/integration/components/tab-link-test.js +0 -26
  119. data/client-app/tests/integration/components/tabbed-section-test.js +0 -26
  120. data/client-app/tests/integration/components/time-formatter-test.js +0 -26
  121. data/client-app/tests/integration/components/update-time-test.js +0 -26
@@ -1,27 +1,27 @@
1
- ---
2
- language: node_js
3
- node_js:
4
- - "6"
5
-
6
- sudo: false
7
- dist: trusty
8
-
9
- addons:
10
- chrome: stable
11
-
12
- cache:
13
- directories:
14
- - $HOME/.npm
15
-
16
- env:
17
- global:
18
- # See https://git.io/vdao3 for details.
19
- - JOBS=1
20
-
21
- before_install:
22
- - npm config set spin false
23
-
24
- script:
25
- - npm run lint:hbs
26
- - npm run lint:js
27
- - npm test
1
+ ---
2
+ language: node_js
3
+ node_js:
4
+ - "6"
5
+
6
+ sudo: false
7
+ dist: trusty
8
+
9
+ addons:
10
+ chrome: stable
11
+
12
+ cache:
13
+ directories:
14
+ - $HOME/.npm
15
+
16
+ env:
17
+ global:
18
+ # See https://git.io/vdao3 for details.
19
+ - JOBS=1
20
+
21
+ before_install:
22
+ - npm config set spin false
23
+
24
+ script:
25
+ - npm run lint:hbs
26
+ - npm run lint:js
27
+ - npm test
@@ -1,3 +1,3 @@
1
- {
2
- "ignore_dirs": ["tmp", "dist"]
3
- }
1
+ {
2
+ "ignore_dirs": ["tmp", "dist"]
3
+ }
@@ -1,57 +1,57 @@
1
- # client-app
2
-
3
- This README outlines the details of collaborating on this Ember application.
4
- A short introduction of this app could easily go here.
5
-
6
- ## Prerequisites
7
-
8
- You will need the following things properly installed on your computer.
9
-
10
- * [Git](https://git-scm.com/)
11
- * [Node.js](https://nodejs.org/) (with npm)
12
- * [Ember CLI](https://ember-cli.com/)
13
- * [Google Chrome](https://google.com/chrome/)
14
-
15
- ## Installation
16
-
17
- * `git clone <repository-url>` this repository
18
- * `cd client-app`
19
- * `npm install`
20
-
21
- ## Running / Development
22
-
23
- * `ember serve`
24
- * Visit your app at [http://localhost:4200](http://localhost:4200).
25
- * Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
26
-
27
- ### Code Generators
28
-
29
- Make use of the many generators for code, try `ember help generate` for more details
30
-
31
- ### Running Tests
32
-
33
- * `ember test`
34
- * `ember test --server`
35
-
36
- ### Linting
37
-
38
- * `npm run lint:hbs`
39
- * `npm run lint:js`
40
- * `npm run lint:js -- --fix`
41
-
42
- ### Building
43
-
44
- * `ember build` (development)
45
- * `ember build --environment production` (production)
46
-
47
- ### Deploying
48
-
49
- Specify what it takes to deploy your app.
50
-
51
- ## Further Reading / Useful Links
52
-
53
- * [ember.js](https://emberjs.com/)
54
- * [ember-cli](https://ember-cli.com/)
55
- * Development Browser Extensions
56
- * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
57
- * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
1
+ # client-app
2
+
3
+ This README outlines the details of collaborating on this Ember application.
4
+ A short introduction of this app could easily go here.
5
+
6
+ ## Prerequisites
7
+
8
+ You will need the following things properly installed on your computer.
9
+
10
+ * [Git](https://git-scm.com/)
11
+ * [Node.js](https://nodejs.org/) (with npm)
12
+ * [Ember CLI](https://ember-cli.com/)
13
+ * [Google Chrome](https://google.com/chrome/)
14
+
15
+ ## Installation
16
+
17
+ * `git clone <repository-url>` this repository
18
+ * `cd client-app`
19
+ * `npm install`
20
+
21
+ ## Running / Development
22
+
23
+ * `ember serve`
24
+ * Visit your app at [http://localhost:4200](http://localhost:4200).
25
+ * Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
26
+
27
+ ### Code Generators
28
+
29
+ Make use of the many generators for code, try `ember help generate` for more details
30
+
31
+ ### Running Tests
32
+
33
+ * `ember test`
34
+ * `ember test --server`
35
+
36
+ ### Linting
37
+
38
+ * `npm run lint:hbs`
39
+ * `npm run lint:js`
40
+ * `npm run lint:js -- --fix`
41
+
42
+ ### Building
43
+
44
+ * `ember build` (development)
45
+ * `ember build --environment production` (production)
46
+
47
+ ### Deploying
48
+
49
+ Specify what it takes to deploy your app.
50
+
51
+ ## Further Reading / Useful Links
52
+
53
+ * [ember.js](https://emberjs.com/)
54
+ * [ember-cli](https://ember-cli.com/)
55
+ * Development Browser Extensions
56
+ * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
57
+ * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
File without changes
@@ -1,37 +1,43 @@
1
- import Component from "@ember/component";
2
- import { observer } from "@ember/object";
3
-
4
- export default Component.extend({
5
- showMenu: false,
6
- tagName: "span",
7
-
8
- init() {
9
- this._super(...arguments);
10
- this.bindingFunction = this.bindingFunction.bind(this);
11
- },
12
-
13
- bindingFunction(event) {
14
- const context = this.$()[0];
15
- if (!Em.$.contains(context, event.target) && context !== event.target) {
16
- this.set("showMenu", false);
17
- }
18
- },
19
-
20
- bindDocument: observer("showMenu", function() {
21
- const $document = Em.$(document);
22
- if (this.get("showMenu")) {
23
- $document.on("click", this.get("bindingFunction"));
24
- } else {
25
- $document.unbind("click", this.get("bindingFunction"));
26
- }
27
- }),
28
-
29
- actions: {
30
- expandMenu() {
31
- this.toggleProperty("showMenu");
32
- },
33
- share() {
34
- this.share();
35
- }
36
- }
37
- });
1
+ import Component from "@ember/component";
2
+ import { observer } from "@ember/object";
3
+
4
+ export default Component.extend({
5
+ showMenu: false,
6
+ tagName: "span",
7
+
8
+ init() {
9
+ this._super(...arguments);
10
+ this.bindingFunction = this.bindingFunction.bind(this);
11
+ },
12
+
13
+ bindingFunction(event) {
14
+ const context = this.$()[0];
15
+ if (!Em.$.contains(context, event.target) && context !== event.target) {
16
+ this.set("showMenu", false);
17
+ }
18
+ },
19
+
20
+ bindDocument: observer("showMenu", function() {
21
+ const $document = Em.$(document);
22
+ if (this.get("showMenu")) {
23
+ $document.on("click", this.get("bindingFunction"));
24
+ } else {
25
+ $document.off("click", this.get("bindingFunction"));
26
+ }
27
+ }),
28
+
29
+ willDestroyElement() {
30
+ this._super(...arguments);
31
+ const $document = Em.$(document);
32
+ $document.off("click", this.get("bindingFunction"));
33
+ },
34
+
35
+ actions: {
36
+ expandMenu() {
37
+ this.toggleProperty("showMenu");
38
+ },
39
+ share() {
40
+ this.share();
41
+ }
42
+ }
43
+ });
@@ -1,44 +1,80 @@
1
- import Component from "@ember/component";
2
- import { computed } from "@ember/object";
3
- import { buildHashString } from "client-app/lib/utilities";
4
-
5
- export default Component.extend({
6
- current: 1,
7
-
8
- didUpdateAttrs() {
9
- this.set("current", 1);
10
- },
11
-
12
- isEnvArray: computed("message.env", function() {
13
- return Array.isArray(this.get("message.env"));
14
- }),
15
-
16
- html: computed("isEnvArray", "current", function() {
17
- if (!this.get("isEnvArray")) {
18
- return buildHashString(this.get("message.env"));
19
- } else {
20
- const currentEnv = this.get("message.env")[this.get("current") - 1];
21
- return buildHashString(currentEnv);
22
- }
23
- }),
24
-
25
- disableBackButtons: computed("current", function() {
26
- return this.get("current") === 1;
27
- }),
28
-
29
- disableForwardButtons: computed("current", "message.env.length", function() {
30
- return this.get("current") === this.get("message.env.length");
31
- }),
32
-
33
- actions: {
34
- takeStep(dir) {
35
- const amount = dir === "back" ? -1 : 1;
36
- this.set("current", this.get("current") + amount);
37
- },
38
-
39
- bigJump(dir) {
40
- const newCurrent = dir === "back" ? 1 : this.get("message.env.length");
41
- this.set("current", newCurrent);
42
- }
43
- }
44
- });
1
+ import Component from "@ember/component";
2
+ import { computed } from "@ember/object";
3
+ import { buildHashString } from "client-app/lib/utilities";
4
+ import Preload from "client-app/lib/preload";
5
+
6
+ export default Component.extend({
7
+ current: 1,
8
+
9
+ didUpdateAttrs() {
10
+ this.setProperties({
11
+ current: 1,
12
+ expanded: null
13
+ });
14
+ },
15
+
16
+ isEnvArray: computed("message.env", function() {
17
+ return Array.isArray(this.get("message.env"));
18
+ }),
19
+
20
+ html: computed("isEnvArray", "current", "expanded.[]", function() {
21
+ if (!this.get("isEnvArray")) {
22
+ return buildHashString(this.get("message.env"));
23
+ } else {
24
+ const currentEnv = Em.$.extend(
25
+ {},
26
+ this.get("message.env")[this.get("current") - 1]
27
+ );
28
+ const expandableKeys = Preload.get("env_expandable_keys") || [];
29
+ expandableKeys.forEach(key => {
30
+ if (currentEnv.hasOwnProperty(key) && !Array.isArray(currentEnv[key])) {
31
+ const list = [currentEnv[key]];
32
+ this.get("message.env").forEach(env => {
33
+ if (env[key] && list.indexOf(env[key]) === -1) {
34
+ list.push(env[key]);
35
+ }
36
+ });
37
+ currentEnv[key] = list.length > 1 ? list : list[0];
38
+ }
39
+ });
40
+ return buildHashString(currentEnv, false, this.get("expanded") || []);
41
+ }
42
+ }),
43
+
44
+ click(e) {
45
+ const $elem = Em.$(e.target);
46
+ const dataKey = $elem.attr("data-key");
47
+ const expandableKeys = Preload.get("env_expandable_keys") || [];
48
+ if (
49
+ expandableKeys.indexOf(dataKey) !== -1 &&
50
+ $elem.hasClass("expand-list")
51
+ ) {
52
+ e.preventDefault();
53
+ if (!this.get("expanded")) {
54
+ this.set("expanded", [dataKey]);
55
+ } else {
56
+ this.get("expanded").pushObject(dataKey);
57
+ }
58
+ }
59
+ },
60
+
61
+ disableBackButtons: computed("current", function() {
62
+ return this.get("current") === 1;
63
+ }),
64
+
65
+ disableForwardButtons: computed("current", "message.env.length", function() {
66
+ return this.get("current") === this.get("message.env.length");
67
+ }),
68
+
69
+ actions: {
70
+ takeStep(dir) {
71
+ const amount = dir === "back" ? -1 : 1;
72
+ this.set("current", this.get("current") + amount);
73
+ },
74
+
75
+ bigJump(dir) {
76
+ const newCurrent = dir === "back" ? 1 : this.get("message.env.length");
77
+ this.set("current", newCurrent);
78
+ }
79
+ }
80
+ });
File without changes
File without changes
@@ -1,27 +1,27 @@
1
- import Component from "@ember/component";
2
-
3
- export default Component.extend({
4
- classNameBindings: ["active", ":content"],
5
- isLink: false,
6
-
7
- invokeParent(name) {
8
- let current = this.get("parentView");
9
- while (current && !current[name]) {
10
- current = current.get("parentView");
11
- }
12
- if (current) {
13
- current[name](this);
14
- }
15
- },
16
-
17
- didInsertElement() {
18
- this.invokeParent("addTab");
19
- if (this.get("defaultTab")) {
20
- this.invokeParent("selectTab");
21
- }
22
- },
23
-
24
- willDestroyElement() {
25
- this.invokeParent("removeTab");
26
- }
27
- });
1
+ import Component from "@ember/component";
2
+
3
+ export default Component.extend({
4
+ classNameBindings: ["active", ":content", "name"],
5
+ isLink: false,
6
+
7
+ invokeParent(name) {
8
+ let current = this.get("parentView");
9
+ while (current && !current[name]) {
10
+ current = current.get("parentView");
11
+ }
12
+ if (current) {
13
+ current[name](this);
14
+ }
15
+ },
16
+
17
+ didInsertElement() {
18
+ this.invokeParent("addTab");
19
+ if (this.get("defaultTab")) {
20
+ this.invokeParent("selectTab");
21
+ }
22
+ },
23
+
24
+ willDestroyElement() {
25
+ this.invokeParent("removeTab");
26
+ }
27
+ });