hypernova 1.1.0 → 1.2.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
  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