kinetic_cafe_error 1.0.1 → 1.1

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: 3564138b37ad132a842770db28222d40b7000803
4
- data.tar.gz: cfaeda6497ded920ea5cbd9c932747686c0520d8
3
+ metadata.gz: be8bfda8e64ddea25cca49dd080dacfe1b489690
4
+ data.tar.gz: ada56cc846a9262dca8941335a32d290d29aa7ff
5
5
  SHA512:
6
- metadata.gz: fb74d547dab54155c1d367f198697fab7d2af19873868fece57f901d352ef1e21bbb59fcb6bc8a4a6064f4aede80616f94ac14d7208417d4305d82fe899a4468
7
- data.tar.gz: 8329ea89fcaa5da65a289b8e1d7999825ad1e59eade7f43b00fcfbda4c4b95cb846b5675cddf0d7bb3c8cacd88b9e6e6ba1d16064600f9e8405f8bc9fa85fbc6
6
+ metadata.gz: 811a51c61090c41d0ec80e7abf28fd3bdeb61852a8031d2c4159487d62562df9a81cf3f30ccfc0c3aa4e41be99f020ee03a6100ce26ef809ca8a1bfd03304dc6
7
+ data.tar.gz: 3ba9c1634d770fe886f268c085ddff9c941e5d1cd18b49f723ce71d20fd9bd7fe757825637f607e9aad72c4008aca011e614c16f7b9b88469938ff6e7ea2f0bb
data/History.rdoc CHANGED
@@ -1,7 +1,34 @@
1
+ === 1.1 / 2015-06-05
2
+
3
+ * 7 minor enhancements
4
+
5
+ * Added Minitest assertions and expectations.
6
+ * Added Rspec expectation matchers.
7
+ * Changed the error table to be a partial and renamed keys to support this
8
+ change (kinetic_cafe_error/_table.html.*). Removed the previous key. Now
9
+ an error is nominally embeddable in your own views without being a full
10
+ page.
11
+ * Added HAML templates.
12
+ * Added Slim templates.
13
+ * Move error page to kinetic_cafe_error/page.html.* instead of
14
+ kinetic_cafe/error/page.html.*. This could be a breaking change, but I
15
+ consider it low risk.
16
+ * Added KineticCafe::Error#code as an alias for KineticCafe::Error#i18n_key.
17
+
18
+ * 2 minor bugfixes:
19
+
20
+ * The en and fr translation files were reporting en-CA and fr-CA as their
21
+ locales, which is incorrect.
22
+
23
+ * Renamed locale files to better match their names to their locales. The
24
+ locale is not en_ca, but en-CA.
25
+
1
26
  === 1.0.1 / 2015-05-27
2
27
 
3
- * Bugfix: Mac OS X is not case-sensitive and I do not currently have Rails
4
- tests.
28
+ * 1 minor bugfix
29
+
30
+ * Mac OS X is not case-sensitive and I do not currently have Rails-specific
31
+ tests.
5
32
 
6
33
  === 1.0.0 / 2015-05-27
7
34
 
data/Manifest.txt CHANGED
@@ -9,16 +9,24 @@ Manifest.txt
9
9
  README.rdoc
10
10
  Rakefile
11
11
  app/controllers/concerns/kinetic_cafe/error_handler.rb
12
- app/views/kinetic_cafe/error/page.html.erb
12
+ app/views/kinetic_cafe_error/_table.html.erb
13
+ app/views/kinetic_cafe_error/_table.html.haml
14
+ app/views/kinetic_cafe_error/_table.html.slim
15
+ app/views/kinetic_cafe_error/page.html.erb
16
+ app/views/kinetic_cafe_error/page.html.haml
17
+ app/views/kinetic_cafe_error/page.html.slim
18
+ config/i18n-tasks.yml.erb
19
+ config/locales/kinetic_cafe_error.en-CA.yml
20
+ config/locales/kinetic_cafe_error.en-UK.yml
21
+ config/locales/kinetic_cafe_error.en-US.yml
13
22
  config/locales/kinetic_cafe_error.en.yml
14
- config/locales/kinetic_cafe_error.en_ca.yml
15
- config/locales/kinetic_cafe_error.en_uk.yml
16
- config/locales/kinetic_cafe_error.en_us.yml
23
+ config/locales/kinetic_cafe_error.fr-CA.yml
17
24
  config/locales/kinetic_cafe_error.fr.yml
18
- config/locales/kinetic_cafe_error.fr_ca.yml
19
25
  lib/kinetic_cafe/error.rb
26
+ lib/kinetic_cafe/error/minitest.rb
20
27
  lib/kinetic_cafe/error_dsl.rb
21
28
  lib/kinetic_cafe/error_engine.rb
29
+ lib/kinetic_cafe/error_rspec.rb
22
30
  lib/kinetic_cafe_error.rb
23
31
  test/test_helper.rb
24
32
  test/test_kinetic_cafe_error.rb
@@ -31,11 +31,11 @@ module KineticCafe::ErrorHandler
31
31
  end
32
32
  end
33
33
 
34
- # Render the +error+ as HTML. Uses the template +kinetic_cafe/error/page+
34
+ # Render the +error+ as HTML. Uses the template +kinetic_cafe_error/page+
35
35
  # with +error+ passed as a local of the same name. The render status is set
36
36
  # to <tt>error.status</tt>.
37
37
  def kinetic_cafe_error_render_html(error)
38
- render template: 'kinetic_cafe/error/page', locals: { error: error },
38
+ render template: 'kinetic_cafe_error/page', locals: { error: error },
39
39
  status: error.status
40
40
  end
41
41
 
@@ -0,0 +1,12 @@
1
+ <table class='kcerror'>
2
+ <tbody>
3
+ <tr>
4
+ <th><%= I18n.t('kinetic_cafe_error.table.header.status') %></th>
5
+ <td><%= error.status %></td>
6
+ </tr>
7
+ <tr>
8
+ <th><%= I18n.t('kinetic_cafe_error.table.header.code') %></th>
9
+ <td><%= error.code %></td>
10
+ </tr>
11
+ </tbody>
12
+ </table>
@@ -0,0 +1,8 @@
1
+ %table.kcerror
2
+ %tbody
3
+ %tr
4
+ %th= I18n.t('kinetic_cafe_error.table.header.status')
5
+ %td= error.status
6
+ %tr
7
+ %th= I18n.t('kinetic_cafe_error.table.header.code')
8
+ %td= error.code
@@ -0,0 +1,8 @@
1
+ table.kcerror
2
+ tbody
3
+ tr
4
+ th= I18n.t('kinetic_cafe_error.table.header.status')
5
+ td= error.status
6
+ tr
7
+ th= I18n.t('kinetic_cafe_error.table.header.code')
8
+ td= error.code
@@ -0,0 +1,9 @@
1
+ <h2><%= I18n.t('kinetic_cafe_error.page.title') %></h2>
2
+
3
+ <% unless error.header_only? || error.internal? -%>
4
+ <blockquote><%= error.i18n_message %></blockquote>
5
+ <% end -%>
6
+
7
+ <%= I18n.t('kinetic_cafe_error.page.body_html') %>
8
+
9
+ <%= render partial: 'kinetic_cafe_error/table', locals: { error: error } %>
@@ -0,0 +1,8 @@
1
+ %h2= I18n.t('kinetic_cafe_error.page.title')
2
+
3
+ - unless error.header_only? || error.internal?
4
+ %blockquote= error.i18n_message
5
+
6
+ = I18n.t('kinetic_cafe_error.page.body_html').html_safe
7
+
8
+ = render partial: 'kinetic_cafe_error/table', locals: { error: error }
@@ -0,0 +1,8 @@
1
+ h2= I18n.t('kinetic_cafe_error.page.title')
2
+
3
+ - unless error.header_only? || error.internal?
4
+ blockquote= error.i18n_message
5
+
6
+ == I18n.t('kinetic_cafe_error.page.body_html')
7
+
8
+ = render partial: 'kinetic_cafe_error/table', locals: { error: error }
@@ -0,0 +1,111 @@
1
+ # i18n-tasks finds and manages missing and unused translations:
2
+ # https://github.com/glebm/i18n-tasks
3
+
4
+ # The "main" locale.
5
+ base_locale: en-CA
6
+ ## All available locales are inferred from the data by default. Alternatively,
7
+ ## specify them explicitly:
8
+ # locales: [es, fr]
9
+
10
+ ## Reporting locale, default: en. Available: en, ru.
11
+ internal_locale: en
12
+
13
+ ## Read and write translations.
14
+ data:
15
+ ## Translations are read from the file system. Supported format: YAML, JSON.
16
+ ## Provide a custom adapter:
17
+ # adapter: I18n::Tasks::Data::FileSystem
18
+
19
+ # Locale files or `File.find` patterns where translations are read from:
20
+ read:
21
+ - config/locales/*.%{locale}.yml
22
+ # <%# - <%= %x(bundle show aldo-datahub-kinetic-cafe-errors).chomp %1>/config/locales/*.%{locale}.yml %>
23
+ # <%# - <%= %x(bundle show kinetic_cafe_error).chomp %1>/config/locales/*.%{locale}.yml %>
24
+
25
+ # Locale files to write new keys to, based on a list of key pattern => file
26
+ # rules. Matched from top to bottom:
27
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
28
+ write:
29
+ ## For example, write devise and simple form keys to their respective files:
30
+ - - '{kinetic_cafe_error}.*'
31
+ - 'config/locales/missing-\1.%{locale}.yml'
32
+ ## Catch-all.
33
+ - config/locales/missing.%{locale}.yml
34
+
35
+ ## Specify the router (see Readme for details). Valid values:
36
+ ## conservative_router, pattern_router, or a custom class.
37
+ # router: convervative_router
38
+
39
+ yaml:
40
+ write:
41
+ # do not wrap lines at 80 characters
42
+ line_width: 90
43
+ # line_width: -1
44
+
45
+ ## Pretty-print JSON:
46
+ # json:
47
+ # write:
48
+ # indent: ' '
49
+ # space: ' '
50
+ # object_nl: "\n"
51
+ # array_nl: "\n"
52
+
53
+ # Find translate calls
54
+ search:
55
+ ## Paths or `File.find` patterns to search in:
56
+ # paths:
57
+ # - app/
58
+
59
+ ## Root directories for relative keys resolution.
60
+ # relative_roots:
61
+ # - app/views
62
+ # - app/controllers
63
+ # - app/helpers
64
+ # - app/presenters
65
+
66
+ ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
67
+ ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json)
68
+ exclude:
69
+ - app/assets/images
70
+ - app/assets/fonts
71
+
72
+ ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`:
73
+ ## If specified, this settings takes priority over `exclude`, but `exclude` still applies.
74
+ # include: ["*.rb", "*.html.slim"]
75
+
76
+ ## Default scanner finds t() and I18n.t() calls.
77
+ # scanner: I18n::Tasks::Scanners::PatternWithScopeScanner
78
+
79
+ ## Google Translate
80
+ # translation:
81
+ # # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
82
+ # api_key: "AbC-dEf5"
83
+
84
+ ## Do not consider these keys missing:
85
+ # ignore_missing:
86
+ # - 'errors.messages.{accepted,blank,invalid,too_short,too_long}'
87
+ # - '{devise,simple_form}.*'
88
+
89
+ ## Consider these keys used:
90
+ # ignore_unused:
91
+ # - 'activerecord.attributes.*'
92
+ # - '{devise,kaminari,will_paginate}.*'
93
+ # - 'simple_form.{yes,no}'
94
+ # - 'simple_form.{placeholders,hints,labels}.*'
95
+ # - 'simple_form.{error_notification,required}.:'
96
+
97
+ ## Exclude these keys from the `i18n-tasks eq-base' report:
98
+ ignore_eq_base:
99
+ all:
100
+ - kinetic_cafe_error.table.header.code
101
+
102
+ # fr-CA,fr:
103
+ en-UK,en-US,en:
104
+ - kinetic_cafe_error.page.body_html
105
+ - kinetic_cafe_error.page.error_table_html
106
+ - kinetic_cafe_error.page.title
107
+ - kinetic_cafe_error.table.header.status
108
+
109
+ ## Ignore these keys completely:
110
+ # ignore:
111
+ # - kaminari.*
@@ -0,0 +1,14 @@
1
+ en-CA:
2
+ kinetic_cafe_error:
3
+ page:
4
+ title: >-
5
+ An error occurred.
6
+ body_html: |
7
+ <p>The person responsible has been informed.</p>
8
+ <p>I’m not allowed to say anything else.</p>
9
+ <p>…</p>
10
+ <p>OK. Just for you, here’s a bit more:</p>
11
+ table:
12
+ header:
13
+ status: Status
14
+ code: Code
@@ -0,0 +1,14 @@
1
+ en-UK:
2
+ kinetic_cafe_error:
3
+ page:
4
+ title: >-
5
+ An error occurred.
6
+ body_html: |
7
+ <p>The person responsible has been informed.</p>
8
+ <p>I’m not allowed to say anything else.</p>
9
+ <p>…</p>
10
+ <p>OK. Just for you, here’s a bit more:</p>
11
+ table:
12
+ header:
13
+ status: Status
14
+ code: Code
@@ -0,0 +1,14 @@
1
+ en-US:
2
+ kinetic_cafe_error:
3
+ page:
4
+ title: >-
5
+ An error occurred.
6
+ body_html: |
7
+ <p>The person responsible has been informed.</p>
8
+ <p>I’m not allowed to say anything else.</p>
9
+ <p>…</p>
10
+ <p>OK. Just for you, here’s a bit more:</p>
11
+ table:
12
+ header:
13
+ status: Status
14
+ code: Code
@@ -1,4 +1,4 @@
1
- en-CA:
1
+ en:
2
2
  kinetic_cafe_error:
3
3
  page:
4
4
  title: >-
@@ -8,14 +8,7 @@ en-CA:
8
8
  <p>I’m not allowed to say anything else.</p>
9
9
  <p>…</p>
10
10
  <p>OK. Just for you, here’s a bit more:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Status</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>
11
+ table:
12
+ header:
13
+ status: Status
14
+ code: Code
@@ -8,14 +8,7 @@ fr-CA:
8
8
  <p>Je ne suis pas autorisé à dire quoi que ce soit d’autre à ce sujet.</p>
9
9
  <p>…</p>
10
10
  <p>D’ACCORD. Juste pour vous, voici un peu plus:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Condition</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>
11
+ table:
12
+ header:
13
+ status: Condition
14
+ code: Code
@@ -1,4 +1,4 @@
1
- fr-CA:
1
+ fr:
2
2
  kinetic_cafe_error:
3
3
  page:
4
4
  title: >-
@@ -8,14 +8,7 @@ fr-CA:
8
8
  <p>Je ne suis pas autorisé à dire quoi que ce soit d’autre à ce sujet.</p>
9
9
  <p>…</p>
10
10
  <p>D’ACCORD. Juste pour vous, voici un peu plus:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Condition</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>
11
+ table:
12
+ header:
13
+ status: Condition
14
+ code: Code
@@ -25,7 +25,7 @@ module KineticCafe #:nodoc:
25
25
  # rescue clause and handled there, as is shown in the included
26
26
  # KineticCafe::ErrorHandler controller concern for Rails.
27
27
  class Error < ::StandardError
28
- VERSION = '1.0.1' # :nodoc:
28
+ VERSION = '1.1' # :nodoc:
29
29
 
30
30
  # The HTTP status to be returned. If not provided in the constructor, uses
31
31
  # #default_status.
@@ -101,6 +101,7 @@ module KineticCafe #:nodoc:
101
101
  def i18n_key
102
102
  @i18n_key ||= "#{self.class.i18n_key_base}.#{name}".freeze
103
103
  end
104
+ alias_method :code, :i18n_key
104
105
 
105
106
  # Indicates that this error should *not* have its details rendered to the
106
107
  # user, but should use the +head+ method.
@@ -0,0 +1,68 @@
1
+ module Minitest #:nodoc:
2
+ # Add assertions to Minitest for testing KineticCafe::Error objects.
3
+ module KineticCafeErrorAssertions
4
+ # Assert that the +actual+ exception received is the +expected+ descendant
5
+ # of KineticCafe::Error and that it has been constructed with the same
6
+ # +params+ provided.
7
+ def assert_kc_error expected, actual, params = {}, msg = nil
8
+ msg, params = params, {} if msg.nil? && params.kind_of?(String)
9
+
10
+ assert_kind_of expected, actual,
11
+ msg || "Expected #{actual} to be #{expected}, but it was not."
12
+
13
+ expected = expected.new(params)
14
+ assert_equal expected, actual,
15
+ msg || "Expected #{actual} to be #{expected}, but it was not."
16
+ end
17
+
18
+ # Assert that the +actual+ string received is the +expected+ descendant of
19
+ # KineticCafe::Error and that it has been constructed with the same
20
+ # +params+ provided.
21
+ #
22
+ # This differs from +assert_kc_error+ in that comparison of the parsed JSON
23
+ # output is compared, not KineticCafe::Error objects. The JSON for the
24
+ # provided KineticCafe::Error object is generated through
25
+ # KineticCafe::Error#error_json.
26
+ def assert_kc_error_json expected, actual, params = {}, msg = nil
27
+ msg, params = params, {} if msg.nil? && params.kind_of?(String)
28
+
29
+ msg ||= "Expected #{actual} to be JSON for #{expected}, but it was not."
30
+ actual = JSON.parse(actual)
31
+ expected = JSON.parse(expected.new(params).error_result.to_json)
32
+
33
+ assert_equal expected, actual, msg
34
+ end
35
+
36
+ # Assert that a reponse body (<tt>@response.body</tt>, useful from
37
+ # ActionController::TestCase) is JSON for the expected error. This is a
38
+ # convenience wrapper around #assert_kc_error_json.
39
+ def assert_response_kc_error expected, params = {}, msg = nil
40
+ if msg.nil? && params.kind_of?(String)
41
+ msg, params = params, {}
42
+ end
43
+ msg ||= "Expected response to be #{expected}, but was not."
44
+ assert_kc_error_json expected, @response.body, params, msg
45
+ end
46
+
47
+ Minitest::Test.send(:include, self)
48
+ end
49
+
50
+ # Extend Minitest::Expectations with expectations for KineticCafe::Error
51
+ # tests.
52
+ module Expectations
53
+ ##
54
+ # See Minitest::KineticCafeErrorAssertions#assert_kc_error
55
+ #
56
+ # :method: must_be_kc_error expected, params = {}, msg = nil
57
+
58
+ infect_an_assertion :assert_kc_error, :must_be_kc_error, :dont_flip
59
+
60
+ ##
61
+ # See Minitest::KineticCafeErrorAssertions#assert_kc_error_json
62
+ #
63
+ # :method: must_be_kc_error_json expected, params = {}, msg = nil
64
+
65
+ infect_an_assertion :assert_kc_error_json, :must_be_kc_error_json,
66
+ :dont_flip
67
+ end
68
+ end
@@ -0,0 +1,49 @@
1
+ require 'rspec/expectations'
2
+
3
+ module KineticCafe
4
+ # Provide a number of useful expectations against Kinetic Cafe errors. Enable
5
+ # these with:
6
+ #
7
+ # require 'kinetic_cafe/error_rspec'
8
+ # Rspec.configure do |c|
9
+ # c.include KineticCafe::ErrorRspec
10
+ # end
11
+ #
12
+ # +be_json_for+:: Verifies that the expected value is a JSON representation
13
+ # of the actual value. If the actual value responds to
14
+ # #body, the actual value is replaced with +actual.body+.
15
+ module ErrorRspec
16
+ extend ::Rspec::Matchers::DSL
17
+
18
+ matcher :be_json_for do |expected|
19
+ match do |actual|
20
+ compare = if actual.respond_to?(:body)
21
+ actual.body
22
+ else
23
+ compare
24
+ end
25
+ expect(JSON.parse(compare)).to eq(expected)
26
+ end
27
+
28
+ diffable
29
+ end
30
+
31
+ matcher :be_kc_error do |expected, params = {}|
32
+ match do |actual|
33
+ expect(actual).to be_kind_of(expected)
34
+ expect(actual).to eq(expected.new(params))
35
+ end
36
+
37
+ diffable
38
+ end
39
+
40
+ matcher :be_kc_error_json do |expected, params = {}|
41
+ match do |actual|
42
+ expect(actual).to \
43
+ be_json_for(JSON.parse(expected.new(params).error_result.to_json))
44
+ end
45
+
46
+ diffable
47
+ end
48
+ end
49
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinetic_cafe_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-27 00:00:00.000000000 Z
11
+ date: 2015-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.6'
19
+ version: '5.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.6'
26
+ version: '5.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -261,16 +261,24 @@ files:
261
261
  - README.rdoc
262
262
  - Rakefile
263
263
  - app/controllers/concerns/kinetic_cafe/error_handler.rb
264
- - app/views/kinetic_cafe/error/page.html.erb
264
+ - app/views/kinetic_cafe_error/_table.html.erb
265
+ - app/views/kinetic_cafe_error/_table.html.haml
266
+ - app/views/kinetic_cafe_error/_table.html.slim
267
+ - app/views/kinetic_cafe_error/page.html.erb
268
+ - app/views/kinetic_cafe_error/page.html.haml
269
+ - app/views/kinetic_cafe_error/page.html.slim
270
+ - config/i18n-tasks.yml.erb
271
+ - config/locales/kinetic_cafe_error.en-CA.yml
272
+ - config/locales/kinetic_cafe_error.en-UK.yml
273
+ - config/locales/kinetic_cafe_error.en-US.yml
265
274
  - config/locales/kinetic_cafe_error.en.yml
266
- - config/locales/kinetic_cafe_error.en_ca.yml
267
- - config/locales/kinetic_cafe_error.en_uk.yml
268
- - config/locales/kinetic_cafe_error.en_us.yml
275
+ - config/locales/kinetic_cafe_error.fr-CA.yml
269
276
  - config/locales/kinetic_cafe_error.fr.yml
270
- - config/locales/kinetic_cafe_error.fr_ca.yml
271
277
  - lib/kinetic_cafe/error.rb
278
+ - lib/kinetic_cafe/error/minitest.rb
272
279
  - lib/kinetic_cafe/error_dsl.rb
273
280
  - lib/kinetic_cafe/error_engine.rb
281
+ - lib/kinetic_cafe/error_rspec.rb
274
282
  - lib/kinetic_cafe_error.rb
275
283
  - test/test_helper.rb
276
284
  - test/test_kinetic_cafe_error.rb
@@ -1,8 +0,0 @@
1
- <h2><%= t('kinetic_cafe_error.page.title') %></h2>
2
-
3
- <% unless error.header_only? || error.internal? -%>
4
- <blockquote><%= error.i18n_message %></blockquote>
5
- <% end -%>
6
- <%= t('kinetic_cafe_error.page.body_html') %>
7
- <%= t('kinetic_cafe_error.page.error_table_html',
8
- status: error.status, code: error.i18n_key) -%>
@@ -1,21 +0,0 @@
1
- en-CA:
2
- kinetic_cafe_error:
3
- page:
4
- title: >-
5
- An error occurred.
6
- body_html: |
7
- <p>The person responsible has been informed.</p>
8
- <p>I’m not allowed to say anything else.</p>
9
- <p>…</p>
10
- <p>OK. Just for you, here’s a bit more:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Status</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>
@@ -1,21 +0,0 @@
1
- en-UK:
2
- kinetic_cafe_error:
3
- page:
4
- title: >-
5
- An error occurred.
6
- body_html: |
7
- <p>The person responsible has been informed.</p>
8
- <p>I’m not allowed to say anything else.</p>
9
- <p>…</p>
10
- <p>OK. Just for you, here’s a bit more:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Status</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>
@@ -1,21 +0,0 @@
1
- en-US:
2
- kinetic_cafe_error:
3
- page:
4
- title: >-
5
- An error occurred.
6
- body_html: |
7
- <p>The person responsible has been informed.</p>
8
- <p>I’m not allowed to say anything else.</p>
9
- <p>…</p>
10
- <p>OK. Just for you, here’s a bit more:</p>
11
- error_table_html: |
12
- <table>
13
- <tbody>
14
- <tr>
15
- <th>Status</th><td>&nbsp;</td><td>%{status}</td>
16
- </tr>
17
- <tr>
18
- <th>Code</th><td>&nbsp;</td><td>%{code}</td>
19
- </tr>
20
- </tbody>
21
- </table>