rescue-dog 0.3.8 → 0.3.9

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: a3a42dd86129f4cf07ae57061dcab37b4a31ed3f
4
- data.tar.gz: 915c4f99aac405de93481767e16fac4dcc05db75
3
+ metadata.gz: 8699864729a39a021ec3035fedb01dd3d30b3aef
4
+ data.tar.gz: fac329c748d23e371ae9de1af58b12eacb10d9ad
5
5
  SHA512:
6
- metadata.gz: 2d2def423a21a162a182898001c0b0c793860fb4648128ce0a58fe3c70f0f9abec69dc9fe4a36e7838b1baa1d200adc023bd5db20a22329ddf400871dad33c9f
7
- data.tar.gz: 3c4a5ffee5f17f2fa1c43b0f5919fac2db2a36d053367d95df9bfda1a5acb0f8c02191f64951061e90d606c736b9786d503ce5bef5430b557c086f147f48a1a6
6
+ metadata.gz: 1c8916cc3bfd63a39ab04f2d94abf813b0a482a6b325132174958643c2c52e7ee57fb2b8981206c72fa7b9085d4cbcd1d41119c26b0aa44d1f3a883999286b49
7
+ data.tar.gz: 1afce3a4df831f416e8cfbb2b5505094f9f717c528d03e17ec2771e5767d8e519280a6f41d57620ee3ecc3aabb582e42b345801059edd8b8d8135e558aa3776b
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
19
  log
20
+ vendor
@@ -1,23 +1,22 @@
1
1
  language: ruby
2
- bundler_args: --without development
3
2
  rvm:
4
3
  - 1.9.3
5
4
  - 2.0.0
5
+ - 2.1
6
+ - 2.2.2
6
7
  - ruby-head
7
8
  - jruby-19mode
8
9
  - jruby-20mode
9
10
  - jruby-head
10
- - rbx-19mode
11
+ - rbx-2
11
12
  matrix:
12
13
  allow_failures:
13
14
  - rvm: ruby-head
14
15
  - rvm: jruby-head
16
+ - rvm: rbx-2
17
+ before_install: gem install bundler -v 1.10.5
15
18
  branches:
16
19
  only:
17
20
  - master
18
21
  after_success:
19
22
  - cover -report coveralls
20
- notifications:
21
- recipients:
22
- - yuliinfo@gmail.com
23
-
data/Gemfile CHANGED
@@ -1,8 +1,2 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
-
4
- group :test do
5
- gem 'rspec'
6
- gem 'capybara'
7
- gem 'coveralls', :require => false
8
- end
@@ -1,3 +1,3 @@
1
1
  module Rescue
2
- VERSION = "0.3.8"
2
+ VERSION = "0.3.9"
3
3
  end
@@ -1,22 +1,28 @@
1
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rescue/version'
5
5
 
6
- Gem::Specification.new do |gem|
7
- gem.name = "rescue-dog"
8
- gem.version = Rescue::VERSION
9
- gem.authors = ["yulii"]
10
- gem.email = ["yuliinfo@gmail.com"]
11
- gem.description = %q{Responds status and error handling for Rails}
12
- gem.summary = %q{Declare simple CRUD and respond error methods}
13
- gem.homepage = "https://github.com/yulii/rescue-dog"
14
- gem.license = 'MIT'
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'rescue-dog'
8
+ spec.version = Rescue::VERSION
9
+ spec.authors = ['yulii']
10
+ spec.email = ['yone.info@gmail.com']
15
11
 
16
- gem.files = `git ls-files`.split($/)
17
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
- gem.require_paths = ["lib"]
12
+ spec.summary = 'Responds status and error handling for Rails.'
13
+ spec.description = 'Declare simple CRUD and respond error methods.'
14
+ spec.homepage = 'https://github.com/yulii/rescue-dog'
15
+ spec.license = 'MIT'
20
16
 
21
- gem.add_dependency 'rails', '>= 4.0.0'
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = 'exe'
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_dependency 'rails', '>= 4.0.0'
23
+
24
+ spec.add_development_dependency 'bundler', '~> 1.10'
25
+ spec.add_development_dependency 'rspec'
26
+ spec.add_development_dependency 'capybara'
27
+ spec.add_development_dependency 'coveralls'
22
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rescue-dog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - yulii
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2014-04-13 00:00:00.000000000 Z
11
+ date: 2015-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,9 +24,65 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.0.0
27
- description: Responds status and error handling for Rails
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.10'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Declare simple CRUD and respond error methods.
28
84
  email:
29
- - yuliinfo@gmail.com
85
+ - yone.info@gmail.com
30
86
  executables: []
31
87
  extensions: []
32
88
  extra_rdoc_files: []
@@ -65,16 +121,6 @@ files:
65
121
  - public/500.html
66
122
  - public/500.json
67
123
  - rescue-dog.gemspec
68
- - spec/fake_rails.rb
69
- - spec/rescue/controller_spec.rb
70
- - spec/rescue/controllers/action_spec.rb
71
- - spec/rescue/controllers/dynamic_spec.rb
72
- - spec/rescue/controllers/flash_spec.rb
73
- - spec/rescue/controllers/static_spec.rb
74
- - spec/rescue/exceptions/respond_error_spec.rb
75
- - spec/rescue_spec.rb
76
- - spec/spec_helper.rb
77
- - spec/test_case.rb
78
124
  homepage: https://github.com/yulii/rescue-dog
79
125
  licenses:
80
126
  - MIT
@@ -95,19 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
141
  version: '0'
96
142
  requirements: []
97
143
  rubyforge_project:
98
- rubygems_version: 2.2.2
144
+ rubygems_version: 2.4.5
99
145
  signing_key:
100
146
  specification_version: 4
101
- summary: Declare simple CRUD and respond error methods
102
- test_files:
103
- - spec/fake_rails.rb
104
- - spec/rescue/controller_spec.rb
105
- - spec/rescue/controllers/action_spec.rb
106
- - spec/rescue/controllers/dynamic_spec.rb
107
- - spec/rescue/controllers/flash_spec.rb
108
- - spec/rescue/controllers/static_spec.rb
109
- - spec/rescue/exceptions/respond_error_spec.rb
110
- - spec/rescue_spec.rb
111
- - spec/spec_helper.rb
112
- - spec/test_case.rb
113
- has_rdoc:
147
+ summary: Responds status and error handling for Rails.
148
+ test_files: []
@@ -1,98 +0,0 @@
1
- require 'action_controller/railtie'
2
- require 'action_view/railtie'
3
-
4
- # const
5
- STATUSES = {
6
- :bad_request => 400,
7
- :unauthorized => 401,
8
- :not_found => 404,
9
- :server_error => 500,
10
- }
11
-
12
- # dummy module
13
- module ActiveRecord
14
- class RecordNotFound < StandardError ; end
15
- end
16
- module Mongoid
17
- module Errors
18
- class DocumentNotFound < StandardError ; end
19
- end
20
- end
21
- module BSON
22
- class InvalidObjectId < RuntimeError ; end
23
- end
24
-
25
- # config
26
- Rescue.configure do |config|
27
- config.suppress_response_codes = true
28
- end
29
-
30
- app = Class.new Rails::Application
31
- app.config.active_support.deprecation = :log
32
- app.config.secret_token = 'ccedfce890492dd9fe2908a69a8732104ae133f1e2488bf6a1e96685b05a96d7e11aeaa3da5ade27604a50c3b2c7cc8323dd03ad11bb2e52e95256fb67ef9c8a'
33
- app.config.generators do |g|
34
- g.template_engine :haml
35
- end
36
- app.initialize!
37
-
38
- # routing
39
- app.routes.draw do
40
- STATUSES.each do |name, code|
41
- get "/static/#{name}" =>"static##{name}" ,as: "static_#{name}"
42
- get "/dynamic/#{name}" =>"dynamic##{name}" ,as: "dynamic_#{name}"
43
- end
44
-
45
- Rescue::ApplicationError::STATUS_CODES.each do |code, e|
46
- get "/status/#{code}" =>"status#error_#{code}" ,as: "status_#{code}"
47
- end
48
- end
49
-
50
- # controllers
51
- class ApplicationController < ActionController::Base ; end
52
-
53
- class StaticController < ApplicationController
54
- include Rescue::Controller::Static
55
- rescue_associate :BadRequest ,with: 400
56
- rescue_associate :Unauthorized ,with: 401
57
- rescue_associate :NotFound, Mongoid::Errors::DocumentNotFound, BSON::InvalidObjectId, with: 404
58
- rescue_associate :ServerError ,with: 500
59
-
60
- STATUSES.each do |name, code|
61
- class_name = "#{name}".classify
62
- define_method name do
63
- raise class_name.constantize
64
- end
65
- end
66
- end
67
-
68
- class DynamicController < ApplicationController
69
- include Rescue::Controller::Dynamic
70
- rescue_associate :BadRequest ,with: 400
71
- rescue_associate :Unauthorized ,with: 401
72
- rescue_associate :NotFound, ActiveRecord::RecordNotFound, with: 404
73
- rescue_associate :ServerError ,with: 500
74
-
75
- STATUSES.each do |name, code|
76
- class_name = "#{name}".classify
77
- define_method name do
78
- raise class_name.constantize.new "This is an explanation of what caused the error."
79
- end
80
- end
81
- end
82
-
83
- class StatusController < ApplicationController
84
- include Rescue::Controller::Dynamic
85
- include Rescue::RespondError
86
-
87
- Rescue::ApplicationError::STATUS_CODES.each do |code, e|
88
- define_method "error_#{code}" do
89
- raise e[:status].gsub(' ', '').constantize.new "This is an explanation of what caused the error."
90
- end
91
- end
92
- end
93
-
94
- # models
95
- class RescueModel
96
- end
97
-
98
- Object.const_set(:ApplicationHelper,Module.new)
@@ -1,166 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::Controller do
5
-
6
- let(:controller) do
7
- Class.new ApplicationController do
8
- include Rescue::Controller
9
- rescue_controller RescueModel,
10
- show: [:show_action],
11
- edit: [:edit_action],
12
- new: [:new_action],
13
- create: { render: lambda { } ,rescue: lambda { raise $! } },
14
- update: { render: lambda { } ,rescue: lambda { raise $! } },
15
- destroy: { render: lambda { } ,rescue: lambda { raise $! } },
16
- create_action: { type: :create ,render: lambda { } ,rescue: lambda { raise $! } ,params: :customized_params },
17
- update_action: { type: :update ,render: lambda { } ,rescue: lambda { raise $! } ,params: :customized_params },
18
- destroy_action: { type: :destroy ,render: lambda { } ,rescue: lambda { raise $! } ,params: :customized_params }
19
-
20
- def customized_create_action
21
- rescue_respond(:create_call, create_params,
22
- render: lambda { },
23
- rescue: lambda { }
24
- )
25
- end
26
-
27
- def customized_update_action
28
- rescue_respond(:update_call, update_params,
29
- render: lambda { },
30
- rescue: lambda { }
31
- )
32
- end
33
-
34
- def customized_destroy_action
35
- rescue_respond(:destroy_call, destroy_params,
36
- render: lambda { },
37
- rescue: lambda { }
38
- )
39
- end
40
-
41
- def execute
42
- rescue_respond(:execute_call, execute_params,
43
- render: lambda { },
44
- rescue: lambda { }
45
- )
46
- end
47
- end
48
- end
49
-
50
- # Stub: flash object
51
- let(:flash) do
52
- flash = Hash.new
53
- flash.stub(:now).and_return({})
54
- flash
55
- end
56
-
57
- [:rescue_associate, :rescue_controller].each do |name|
58
- it "should declare `#{name}` method" do
59
- expect(controller.public_methods.include? name).to be_true
60
- end
61
- end
62
-
63
- [ :rescue_respond,
64
- :find_call, :new_call, :create_call, :update_call, :destroy_call].each do |name|
65
- it "should declare `#{name}` method as private" do
66
- expect(controller.private_instance_methods.include? name).to be_true
67
- end
68
- end
69
-
70
- [ :new, :edit, :show, :create, :update, :destroy,
71
- :show_action, :edit_action, :new_action,
72
- :create_action, :update_action, :destroy_action ].each do |name|
73
- it "should declare `#{name}` method as public" do
74
- expect(controller.public_instance_methods.include? name).to be_true
75
- end
76
- end
77
-
78
- context "when action is executed" do
79
- let(:object) do
80
- object = controller.new
81
- # Stub: flash message
82
- object.stub(:flash).and_return(flash)
83
- # Stub: controller/action name for flash messages
84
- object.stub(:controller_path).and_return('')
85
- object.stub(:controller_name).and_return('')
86
- object.stub(:action_name).and_return('')
87
-
88
- # Stub: parameter methods
89
- object.stub(:create_params).and_return({})
90
- object.stub(:update_params).and_return({})
91
- object.stub(:destroy_params).and_return({})
92
- object.stub(:execute_params).and_return({})
93
- object.stub(:customized_params).and_return({})
94
-
95
- # Stub: call methods
96
- object.stub(:find_call).with(any_args()).and_raise('find_call execute')
97
- object.stub(:new_call).and_raise('new_call execute')
98
- object.stub(:create_call).and_raise('create_call execute')
99
- object.stub(:update_call).and_raise('update_call execute')
100
- object.stub(:destroy_call).and_raise('destroy_call execute')
101
- object.stub(:execute_call).and_raise()
102
- object
103
- end
104
-
105
- # Action Type Relation
106
- { find: [:show, :edit, :show_action, :edit_action],
107
- new: [:new, :new_action],
108
- create: [:create, :create_action],
109
- update: [:update, :update_action],
110
- destroy: [:destroy, :destroy_action]
111
- }.each do |type, names|
112
- names.each do |name|
113
- it "should run `#{type}_call` when `#{name}` is executed" do
114
- expect { object.send(name) }.to raise_error(RuntimeError, "#{type}_call execute")
115
- end
116
- end
117
- end
118
-
119
- #it "should be performed within 500 microseconds" do
120
- # n = 10000
121
- # measure = Benchmark.measure do
122
- # n.times { object.execute }
123
- # end
124
- # expect(measure.total).to be < (500 * 1.0e-06 * n)
125
- #end
126
- end
127
-
128
- describe "#rescue_respond" do
129
- let(:object) do
130
- clazz = Class.new ApplicationController do
131
- include Rescue::Controller
132
-
133
- # Subjects
134
- def render_execute
135
- rescue_respond(:stub_call, {},
136
- render: lambda { 'render' },
137
- rescue: lambda { 'rescue' }
138
- )
139
- end
140
-
141
- def rescue_execute
142
- rescue_respond(:stub_call, {},
143
- render: lambda { raise RuntimeError },
144
- rescue: lambda { 'rescue' }
145
- )
146
- end
147
- end
148
-
149
- object = clazz.new
150
- object.stub(:flash).and_return(flash)
151
- object.stub(:controller_path).and_return('rescue')
152
- object.stub(:action_name).and_return('action')
153
- object.stub(:stub_call).with({},{}).and_return(nil)
154
- object
155
- end
156
-
157
- it "should render with no error" do
158
- expect(object.render_execute).to eq('render')
159
- end
160
-
161
- it "should render by the rescue block" do
162
- expect(object.rescue_execute).to eq('rescue')
163
- end
164
- end
165
-
166
- end
@@ -1,129 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::Controller::Action do
5
-
6
- let(:model) do # Stub of Model Class
7
- clazz = Class.new
8
- clazz.stub(:new).with(any_args()) do
9
- object = Object.new
10
- object.stub(:attributes=).and_return(true)
11
- object.stub(:save!).and_return(true)
12
- object.stub(:destroy).and_return(true)
13
- object
14
- end
15
- clazz.stub(:where).and_return(clazz)
16
- clazz.stub(:find).and_return(clazz.new)
17
- clazz
18
- end
19
-
20
- describe "#define_call" do
21
- let(:controller) do # Fake Controller
22
- clazz = model
23
- Class.new do
24
- Rescue::Controller::Action.define_call self, clazz, :@rescue
25
- end
26
- end
27
-
28
- let(:object) do
29
- object = controller.new
30
- object.stub(:params).and_return({})
31
- object
32
- end
33
-
34
- let(:params) { {} }
35
-
36
- [:find_call, :new_call, :create_call, :update_call, :destroy_call].each do |name|
37
- it "should declare `#{name}` method as private" do
38
- expect(controller.private_instance_methods.include? name).to be_true
39
- end
40
- it "should not raise error" do
41
- expect { object.send(name, params) }.not_to raise_error
42
- end
43
- end
44
- end
45
-
46
- describe "#define" do
47
- let(:controller) do # Fake Controller
48
- clazz = model
49
- Class.new do
50
- Rescue::Controller::Action.define_call self, clazz, :@rescue
51
- Rescue::Controller::Action.define self,
52
- [:show, :edit, :new, :create, :update, :destroy],
53
- show: { render: lambda { 'show' } },
54
- edit: { render: lambda { 'edit' } },
55
- new: { render: lambda { 'new' } },
56
- create: { render: lambda { 'create' } },
57
- update: { render: lambda { 'update' } },
58
- destroy: { render: lambda { 'destroy' } }
59
- end
60
- end
61
-
62
- let(:object) do
63
- object = controller.new
64
- object.stub(:params).and_return({})
65
- object.stub(:create_params).and_return({})
66
- object.stub(:update_params).and_return({})
67
- object.stub(:destroy_params).and_return({})
68
-
69
- # Stub: rescue_respond
70
- object.stub(:rescue_respond) do |call, params, options|
71
- options[:render].call
72
- end
73
- object
74
- end
75
-
76
- [:show, :edit, :new, :create, :update, :destroy].each do |name|
77
- it "should declare `#{name}` method" do
78
- expect(controller.public_instance_methods.include? name).to be_true
79
- end
80
- it "should render" do
81
- expect(object.send(name)).to eq(name.to_s)
82
- end
83
- end
84
-
85
- context "when unknown types are specified" do
86
- it do
87
- expect {
88
- Class.new do
89
- Rescue::Controller::Action.define self, [:action],
90
- action: { type: :undefined ,render: lambda { 'render' } ,rescue: lambda { 'rescue' } }
91
- end
92
- }.to raise_error(Rescue::NoActionError, Rescue::NoActionError.new(:undefined).message)
93
- end
94
- end
95
-
96
- context "when an action name is duplicated" do
97
- it "should not raise error for the first time" do
98
- expect {
99
- Class.new do
100
- Rescue::Controller::Action.define self, [:action],
101
- action: { type: :show ,render: lambda { 'render' } ,rescue: lambda { 'rescue' } }
102
- end
103
- }.not_to raise_error
104
- end
105
- it "should raise RuntimeError with \"`action` is already defined.\"" do
106
- expect {
107
- Class.new do
108
- def action ; end
109
- Rescue::Controller::Action.define self, [:action],
110
- action: { type: :show ,render: lambda { 'render' } ,rescue: lambda { 'rescue' } }
111
- end
112
- }.to raise_error(RuntimeError, "`action` is already defined.")
113
- end
114
- end
115
-
116
- context "when an parameter method is undefined" do
117
- { create: :create_params,
118
- update: :update_params,
119
- destroy: :destroy_params }.each do |name, params|
120
- it do
121
- expect {
122
- controller.new.send(name)
123
- }.to raise_error(Rescue::NoParameterMethodError, Rescue::NoParameterMethodError.new(controller, params).message)
124
- end
125
- end
126
- end
127
- end
128
- end
129
-
@@ -1,31 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::Controller::Dynamic do
5
-
6
- let(:object) { DynamicController.new }
7
-
8
- describe "respond method" do
9
- it "expects to be called in a subclass of ApplicationController" do
10
- expect(object.methods.include? Rescue.config.respond_name).to be_true
11
- end
12
- end
13
-
14
- TestCase::Controller::ERRORS.each do |name, code|
15
-
16
- describe "response when raise #{name}" do
17
- TestCase::Controller::FORMATS.each do |format|
18
- context "request format => #{format}" do
19
- before do
20
- visit "/dynamic/#{name.to_s.underscore}.#{format.to_sym}"
21
- end
22
-
23
- it { expect(page).to have_content name.to_s.gsub(/([A-Z]+)([A-Z][a-z])/,'\1 \2').gsub(/([a-z\d])([A-Z])/,'\1 \2') }
24
- it { expect(page).to have_content "This is an explanation of what caused the error." } unless format.to_sym == :html
25
- it { expect(response_headers["Content-Type"]).to include(format.to_s) }
26
- end
27
- end
28
- end
29
- end ## end each
30
-
31
- end
@@ -1,27 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::Controller::Flash do
5
-
6
- describe "#message" do
7
- ['default', 'rescue', 'rescue/dog'].each do |name|
8
- context "when #{{ controller: name, action: :action }}" do
9
-
10
- let(:controller) do
11
- clazz = Class.new
12
- clazz.stub(:controller_path).and_return(name)
13
- clazz.stub(:controller_name).and_return(name)
14
- clazz.stub(:action_name).and_return(:action)
15
- clazz
16
- end
17
-
18
- [:success, :error].each do |status|
19
- it do
20
- expect(Rescue::Controller::Flash.message(controller, status)).to eq("#{name} #{status}")
21
- end
22
- end
23
- end
24
- end
25
- end
26
-
27
- end
@@ -1,30 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::Controller::Static do
5
-
6
- let(:object) { StaticController.new }
7
-
8
- describe "respond method" do
9
- it "expects to be called in a subclass of ApplicationController" do
10
- expect(object.methods.include? Rescue.config.respond_name).to be_true
11
- end
12
- end
13
-
14
- TestCase::Controller::ERRORS.each do |name, code|
15
-
16
- describe "response when raise #{name}" do
17
- TestCase::Controller::FORMATS.each do |format|
18
- context "request format => #{format}" do
19
- before do
20
- visit "/static/#{name.to_s.underscore}.#{format.to_sym}"
21
- end
22
-
23
- it { expect(page).to have_content name.to_s.gsub(/([A-Z]+)([A-Z][a-z])/,'\1 \2').gsub(/([a-z\d])([A-Z])/,'\1 \2') }
24
- it { expect(response_headers["Content-Type"]).to include(format.to_s) }
25
- end
26
- end
27
- end
28
- end ## end each
29
-
30
- end
@@ -1,36 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue::RespondError do
5
-
6
- Rescue::ApplicationError::STATUS_CODES.each do |code, e|
7
- describe "#{code} #{e[:status]}" do
8
- let(:name) { e[:status].gsub(' ', '') }
9
-
10
- it "expects to define an exception class of #{e[:status]}" do
11
- expect(Object.const_defined? name).to be_true
12
- end
13
-
14
- it "expects to define an exception class that is a kind of Rescue::ApplicationError" do
15
- expect(Object.const_get(name).new).to be_a_kind_of Rescue::ApplicationError
16
- end
17
- end
18
- end
19
-
20
- describe "HTTP Status Code" do
21
- context "Suppress Response code is #{Rescue.config.suppress_response_codes}" do
22
- Rescue::ApplicationError::STATUS_CODES.each do |code, e|
23
- describe "#{code} #{e[:status]}" do
24
- before do
25
- visit "/status//#{code}.json"
26
- end
27
-
28
- it "expects to return #{Rescue.config.suppress_response_codes ? 200 : e[:http]}" do
29
- expect(page.status_code).to eq (Rescue.config.suppress_response_codes ? 200 : e[:http])
30
- end
31
- end
32
- end
33
- end
34
- end
35
-
36
- end
@@ -1,32 +0,0 @@
1
- # coding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Rescue do
5
-
6
- describe "define_error_class :RescueStandardError" do
7
- let(:name) { :RescueStandardError }
8
- before { Rescue::Bind.define_error_class name }
9
-
10
- it "expects to define an exception class" do
11
- expect(Object.const_defined? name).to be_true
12
- end
13
-
14
- it "expects to define an exception class that is a kind of StandardError" do
15
- expect(Object.const_get(name).new).to be_a_kind_of StandardError
16
- end
17
- end
18
-
19
- describe "define_error_class :RescueScriptError, ScriptError" do
20
- let(:name) { :RescueScriptError }
21
- before { Rescue::Bind.define_error_class name, ScriptError }
22
-
23
- it "expects to define an exception class" do
24
- expect(Object.const_defined? name).to be_true
25
- end
26
-
27
- it "expects to define an exception class that is a kind of StandardError" do
28
- expect(Object.const_get(name).new).to be_a_kind_of ScriptError
29
- end
30
- end
31
-
32
- end
@@ -1,19 +0,0 @@
1
- # encoding: utf-8
2
- require 'rubygems'
3
- require 'rescue-dog'
4
- require 'coveralls'
5
-
6
- require File.join(File.dirname(__FILE__), 'fake_rails')
7
- require File.join(File.dirname(__FILE__), 'test_case')
8
- require 'capybara/rails'
9
-
10
- #require 'benchmark'
11
-
12
- Coveralls.wear!('rails')
13
- RSpec.configure do |config|
14
- config.mock_with :rspec
15
- config.expect_with :rspec do |c|
16
- c.syntax = :expect # disables `should`
17
- end
18
- config.include Capybara::DSL
19
- end
@@ -1,10 +0,0 @@
1
- class TestCase
2
-
3
- class Controller
4
- ERRORS = { BadRequest: 400, Unauthorized: 401, NotFound: 404, ServerError: 500 }
5
- FORMATS = [Mime::Type.new("text/html", :html), Mime::Type.new("application/json", :json)]
6
-
7
- FLASHS = [:DefaultController, :RescueController, :RescueDogController]
8
- end
9
-
10
- end