hypernova 1.1.0 → 1.2.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
  SHA1:
3
- metadata.gz: 6648c26dac4be36400a9fdcd873c7c3192214d9e
4
- data.tar.gz: c405c205e881fe287464506421b65ffd58d29fb8
3
+ metadata.gz: 6fd596f52c7679e63d8ecbbcf30bd3ed2eb73995
4
+ data.tar.gz: 9c299ef53f79f1fc92a63656af9f24e6caa4c8de
5
5
  SHA512:
6
- metadata.gz: 3a5e72067501132cf82cb4c955a65ae562a889e34887809ebbfad1cc9023ba3d9d04f77c56ea2215ac1992774c7a14290e5cb180452f385dda0b235fba589273
7
- data.tar.gz: 50e4f220a803d2e5381351d8e767193941d39862b7a2cc72f369b006c881c9772142010c6368f0021c6275b9b1831e9b46efb7f970c73fa2263d0b5567c79125
6
+ metadata.gz: 732a397cc928541c490294987dae78fbbc8918e7d02ac233a2645c9ca2be7cae7c343837138495306c144204e89257531e8b45d7e892d076aad4b688aa967072
7
+ data.tar.gz: a885eadc1a0c4a61ddc66f49f786db530f166f2bf3df46a665c1fb7e4158b3726df4bb397a90003cc5a24bde0ea2613e4b81cf93776576888fa0a79eba49851e
@@ -1,6 +1,12 @@
1
1
  language: ruby
2
+ sudo: false
3
+ cache: bundler
2
4
  rvm:
3
- - 1.9.3
5
+ - "1.9.3"
6
+ - "2.0"
7
+ - "2.1"
8
+ - "2.2"
9
+ - "2.3.3"
4
10
  before_install:
5
11
  - gem update bundler
6
12
  script:
@@ -5,6 +5,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.2.0] - 2017-02-13
9
+
10
+ ### Changed
11
+
12
+ - Developer plugin will now display Hypernova error stack traces in monospaced font, instead of as list items. HTML-escape stack traces.
13
+
8
14
  ## [1.1.0] - 2016-11-10
9
15
 
10
16
  ### Added
@@ -38,7 +38,13 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "rspec", "~> 3.4"
39
39
  spec.add_development_dependency "simplecov", "~> 0.11"
40
40
  spec.add_development_dependency "pry", "~> 0.10"
41
- spec.add_development_dependency "webmock", "~> 2.0"
41
+ # this is pinned because ruby devs hate semver
42
+ # see https://github.com/bblimke/webmock/issues/667
43
+ spec.add_development_dependency "webmock", "=2.1.0"
44
+ # below works around travis-ci requiring github-pages-health-check, whose subdep public_suffix
45
+ # stopped being compatible with ruby 1.9
46
+ # see https://github.com/weppos/publicsuffix-ruby/issues/127
47
+ spec.add_development_dependency "public_suffix", "=1.4.6"
42
48
 
43
49
  spec.add_runtime_dependency "faraday", "~> 0.8"
44
50
  end
@@ -1,3 +1,5 @@
1
+ require 'erb'
2
+
1
3
  class DevelopmentModePlugin
2
4
  def after_response(current_response, _)
3
5
  current_response.each do |name, result|
@@ -12,16 +14,30 @@ class DevelopmentModePlugin
12
14
  <div style="background-color: #ff5a5f; color: #fff; padding: 12px;">
13
15
  <p style="margin: 0">
14
16
  <strong>Development Warning!</strong>
15
- The <code>#{name}</code> component failed to render with Hypernova. Error stack:
17
+ The <code>#{html_escape(name)}</code> component failed to render with Hypernova. Error stack:
16
18
  </p>
17
- <ul style="padding: 0 20px">
18
- <li>#{stack_trace(result).join("</li><li>")}</li>
19
- </ul>
19
+ #{ render_stack_trace(stack_trace(result)) }
20
20
  </div>
21
21
  #{result["html"]}
22
22
  HTML
23
23
  end
24
24
 
25
+ def render_stack_trace(trace)
26
+ # Put trace that was split in Hypernova back together, verbatim. Sometimes
27
+ # splitting babel errors makes them more confusing.
28
+ # https://github.com/airbnb/hypernova/blob/master/src/utils/BatchManager.js
29
+ text = html_escape(trace.join("\n "))
30
+ <<-HTML
31
+ <div
32
+ style="white-space: pre-wrap; font-family: monospace; font-size: .95em;"
33
+ >#{text}</div>
34
+ HTML
35
+ end
36
+
37
+ def html_escape(string)
38
+ ::ERB::Util.html_escape(string)
39
+ end
40
+
25
41
  def stack_trace(result)
26
42
  result["error"]["stack"] || []
27
43
  end
@@ -1,3 +1,3 @@
1
1
  module Hypernova
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hypernova
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Teton-Landis
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: exe
14
14
  cert_chain: []
15
- date: 2016-11-10 00:00:00.000000000 Z
15
+ date: 2017-02-13 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: json
@@ -88,16 +88,30 @@ dependencies:
88
88
  name: webmock
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - ~>
91
+ - - '='
92
92
  - !ruby/object:Gem::Version
93
- version: '2.0'
93
+ version: 2.1.0
94
94
  type: :development
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
- - - ~>
98
+ - - '='
99
+ - !ruby/object:Gem::Version
100
+ version: 2.1.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: public_suffix
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - '='
106
+ - !ruby/object:Gem::Version
107
+ version: 1.4.6
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - '='
99
113
  - !ruby/object:Gem::Version
100
- version: '2.0'
114
+ version: 1.4.6
101
115
  - !ruby/object:Gem::Dependency
102
116
  name: faraday
103
117
  requirement: !ruby/object:Gem::Requirement