exposure 0.0.4 → 0.0.5

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.
data/Manifest.txt CHANGED
@@ -5,7 +5,6 @@ exposure.gemspec
5
5
  lib/exposure.rb
6
6
  lib/exposure/common.rb
7
7
  lib/exposure/configuration.rb
8
- lib/exposure/patterns/resource.rb
9
8
  lib/exposure/patterns/resources.rb
10
9
  script/console
11
10
  script/destroy
@@ -28,7 +27,6 @@ spec/flashers/flash_with_block_spec.rb
28
27
  spec/flashers/flash_with_method_spec.rb
29
28
  spec/flashers/flash_with_proc_spec.rb
30
29
  spec/flashers/flash_with_string_spec.rb
31
- spec/resource_spec.rb
32
30
  spec/resources_spec.rb
33
31
  spec/responders/respond_to_mime_types_spec.rb
34
32
  spec/responders/respond_with_block_spec.rb
data/README.mdown CHANGED
@@ -1,19 +1,72 @@
1
- exposure
2
- ======
1
+ # exposure
2
+ Exposure is a Rails is a controller abstraction layer like [`resource_this`](http://github.com/jnewland/resource_this), [`make_resourceful`](http://github.com/hcatlin/make_resourceful) and [`resource_controller`](resource_controller) with the same goal: exposing resources at the controller level with fewer headaches.
3
3
 
4
- REQUIREMENTS:
5
- ======
4
+ class PostsController < ApplicationController
5
+ expose :posts
6
+ end
6
7
 
8
+ ## Customization:
9
+ Exposure has a number of customization points:
10
+ ### Callbacks
11
+ Exposure uses `ActiveSupport`'s callback system and has the following callbacks:
12
+
13
+ * `before_find`
14
+ * `after_find`
15
+ * `after_find_on_failure`
16
+ * `after_find_on_success`
17
+ * `before_assign`
18
+ * `after_assign`
19
+ * `before_save`
20
+ * `after_save`
21
+ * `after_save_on_failure`
22
+ * `after_save_on_success`
23
+ * `before_create`
24
+ * `after_create_on_failure`
25
+ * `after_create_on_success`
26
+ * `before_update`
27
+ * `after_update_on_failure`
28
+ * `after_update_on_success`
29
+ * `before_destroy`
30
+ * `after_destroy_on_success`
31
+ * `before_response`
32
+ * `before_response_on_success`
33
+ * `before_response_on_failure`
34
+
35
+ You can access these directly
36
+
37
+ class PostsController
38
+ before_find :do_somethng_special, :if => {|c| c.action_name == 'show' }
39
+ private
40
+ def do_somethng_special
41
+ ...
42
+ end
43
+ end
44
+
45
+ or through a specialty syntax
46
+
47
+ class PostsController
48
+ before :find, :do_somethng_special, :only => [:create]
49
+ private
50
+ def do_somethng_special
51
+ ...
52
+ end
53
+ end
54
+
55
+ ### Finders
56
+ ### Flashers
57
+ ### Responders
7
58
 
8
59
  INSTALL:
9
- =======
60
+ ------
61
+
62
+ $ sudo gem install exposure
10
63
 
11
- gem sources -a http://gems.github.com (you only have to do this once)
12
- sudo gem install trek-exposure
64
+ # environment.rb
65
+ gem.exposure
13
66
 
14
67
 
15
68
  LICENSE:
16
- =========
69
+ ------
17
70
 
18
71
  (The MIT License)
19
72
 
data/Rakefile CHANGED
@@ -12,10 +12,7 @@ Hoe.plugin :newgem
12
12
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
13
  $hoe = Hoe.spec 'exposure' do
14
14
  self.developer 'Trek Glowacki', 'trek.glowacki@gmail.com'
15
- # self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
16
- # self.rubyforge_name = self.name # TODO this is default value
17
- # self.extra_deps = [['activesupport','>= 2.0.2']]
18
-
15
+ self.summary = 'exposed resources'
19
16
  end
20
17
 
21
18
  require 'newgem/tasks'
@@ -26,15 +26,16 @@ module Exposure
26
26
  # defaults to [:html]
27
27
  def response_for(action_name, options = {}, &block)
28
28
  options[:is] ||= block
29
- options[:formats] ||= [:html]
29
+ formats = options[:formats] || [:html]
30
+
30
31
  case options[:on]
31
32
  when NilClass, :any
32
- self.const_get(:Responses)["#{action_name}.success.html"] = options[:is]
33
- self.const_get(:Responses)["#{action_name}.failure.html"] = options[:is]
33
+ build_custom_response(action_name, :success, formats, options[:is])
34
+ build_custom_response(action_name, :failure, formats, options[:is])
34
35
  when :success
35
- self.const_get(:Responses)["#{action_name}.success.html"] = options[:is]
36
+ build_custom_response(action_name, :success, formats, options[:is])
36
37
  when :failure
37
- self.const_get(:Responses)["#{action_name}.failure.html"] = options[:is]
38
+ build_custom_response(action_name, :failure, formats, options[:is])
38
39
  end
39
40
  end
40
41
 
@@ -100,6 +101,12 @@ module Exposure
100
101
  end
101
102
  end
102
103
 
104
+ def build_custom_response(action_name, success_status, formats, response)
105
+ formats.each do |format|
106
+ self.const_get(:Responses)["#{action_name}.#{success_status}.#{format}"] = response
107
+ end
108
+ end
109
+
103
110
  # builds callbacks that adhere to the ActiveSupport::Callbacks interface
104
111
  def build_callback(prefix, trigger, action, options) #:nodoc:
105
112
  callback_name = "#{prefix}_#{trigger}"
@@ -40,7 +40,7 @@ module Exposure
40
40
 
41
41
  if nesting = options[:nested]
42
42
 
43
- self.parent_model = nesting.shift.to_s.singularize.capitalize.constantize
43
+ self.parent_model = nesting.shift.to_s.singularize.camelize.constantize
44
44
 
45
45
  build_default_finders(self.resources_name, nesting)
46
46
 
@@ -48,7 +48,7 @@ module Exposure
48
48
  self.member_nesting = nesting + [ [self.resource_name.to_sym] ]
49
49
  self.collection_nesting = nesting + [ [self.resources_name.to_sym] ]
50
50
  else
51
- self.parent_model = self.resource_name.capitalize.constantize
51
+ self.parent_model = self.resource_name.camelize.constantize
52
52
  build_default_finders(self.resource_name, [])
53
53
  self.member_nesting = [ [self.resource_name.to_sym] ]
54
54
  self.collection_nesting = [ [self.resources_name.to_sym] ]
@@ -59,5 +59,6 @@ module Exposure
59
59
 
60
60
  define_callbacks(*Patterns::Resources::Callbacks)
61
61
  end
62
+ alias :expose :expose_many
62
63
  end
63
64
  end
data/lib/exposure.rb CHANGED
@@ -1,14 +1,15 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
-
3
+ require 'action_controller'
4
4
  require 'exposure/configuration'
5
5
  require 'exposure/common'
6
6
  require 'exposure/patterns/resources'
7
7
  require 'exposure/patterns/resource'
8
8
 
9
9
  module Exposure
10
- VERSION = '0.0.4'
10
+ VERSION = '0.0.5'
11
11
  def self.included(base)
12
12
  base.extend Configuration
13
13
  end
14
- end
14
+ end
15
+ ActionController::Base.send :include, Exposure
@@ -1,4 +1,24 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "exposure" do
3
+ describe "exposure", :type => :controller do
4
+ class ShipTypesController < ActionController::Base
5
+ expose_many(:ship_types)
6
+ end
7
+ controller_name :ship_types
8
+
9
+ before(:each) do
10
+ @controller = ShipTypesController.new
11
+ @request = ActionController::TestRequest.new
12
+ @response = ActionController::TestResponse.new
13
+ ActionController::Routing::Routes.draw do |map|
14
+ map.resources :ship_types
15
+ end
16
+ end
17
+
18
+ describe "parent models" do
19
+ it "should constantize resource name" do
20
+ ShipTypesController.resources_name.should == "ship_types"
21
+ ShipTypesController.parent_model.should == ShipType
22
+ end
23
+ end
4
24
  end
data/spec/spec_helper.rb CHANGED
@@ -29,7 +29,7 @@ require 'exposure'
29
29
 
30
30
  ActiveRecord::Base.logger = Logger.new(STDOUT) if ENV['DEBUG']
31
31
  ActionController::Base.logger = Logger.new(STDOUT) if ENV['DEBUG']
32
- ActionController::Base.send :include, Exposure
32
+ # ActionController::Base.send :include, Exposure
33
33
  ActionController::Base.view_paths=(File.dirname(__FILE__) + '/fixtures')
34
34
 
35
35
  ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
@@ -54,6 +54,12 @@ ActiveRecord::Schema.define(:version => 1) do
54
54
  t.column :created_at, :datetime
55
55
  t.column :updated_at, :datetime
56
56
  end
57
+ create_table :ship_types do |t|
58
+ t.column :title, :string
59
+ t.column :body, :text
60
+ t.column :created_at, :datetime
61
+ t.column :updated_at, :datetime
62
+ end
57
63
  end
58
64
 
59
65
  class Pirate < ActiveRecord::Base
@@ -68,4 +74,7 @@ class Ship < ActiveRecord::Base
68
74
  def validate
69
75
  end
70
76
  validates_associated :pirate
77
+ end
78
+
79
+ class ShipType < ActiveRecord::Base
71
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exposure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trek Glowacki
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-07 00:00:00 -04:00
12
+ date: 2009-10-08 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,7 +22,7 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 2.3.3
24
24
  version:
25
- description: Expose your data
25
+ description: ""
26
26
  email:
27
27
  - trek.glowacki@gmail.com
28
28
  executables: []
@@ -39,7 +39,6 @@ files:
39
39
  - lib/exposure.rb
40
40
  - lib/exposure/common.rb
41
41
  - lib/exposure/configuration.rb
42
- - lib/exposure/patterns/resource.rb
43
42
  - lib/exposure/patterns/resources.rb
44
43
  - script/console
45
44
  - script/destroy
@@ -62,7 +61,6 @@ files:
62
61
  - spec/flashers/flash_with_method_spec.rb
63
62
  - spec/flashers/flash_with_proc_spec.rb
64
63
  - spec/flashers/flash_with_string_spec.rb
65
- - spec/resource_spec.rb
66
64
  - spec/resources_spec.rb
67
65
  - spec/responders/respond_to_mime_types_spec.rb
68
66
  - spec/responders/respond_with_block_spec.rb
@@ -97,10 +95,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
95
  version:
98
96
  requirements: []
99
97
 
100
- rubyforge_project:
98
+ rubyforge_project: exposure
101
99
  rubygems_version: 1.3.4
102
100
  signing_key:
103
101
  specification_version: 3
104
- summary: Expose your data
102
+ summary: exposed resources
105
103
  test_files: []
106
104
 
@@ -1,226 +0,0 @@
1
- module Exposure
2
- module Patterns
3
- module Resource
4
- def self.extended(base)
5
- base::const_set(:DefaultResponses, DefaultResponses)
6
- base::const_set(:DefaultFlashMessages, DefaultFlashMessages)
7
- base::const_set(:DefaultFinders, {
8
- base.resource_name => Proc.new {|parent,controller| parent.find(controller.params[:id])},
9
- })
10
- end
11
-
12
- Callbacks = %w(
13
- before_find after_find after_find_on_failure after_find_on_success
14
- before_assign after_assign
15
- before_save after_save after_save_on_failure after_save_on_success
16
- before_create after_create_on_failure after_create_on_success
17
- before_update after_update_on_failure after_update_on_success
18
- before_destroy after_destroy_on_success
19
- before_response before_response_on_success before_response_on_failure
20
- )
21
-
22
- DefaultFlashMessages = {
23
- true => {
24
- :create => Proc.new {|c| "#{c.send(:resource_name).capitalize} successfully created" },
25
- :update => Proc.new {|c| "#{c.send(:resource_name).capitalize} successfully updated" },
26
- :destroy => Proc.new {|c| "#{c.send(:resource_name).capitalize} successfully removed" }
27
- },
28
- false => {}
29
- }
30
-
31
- DefaultResponses = {
32
- true => {
33
- :show => Proc.new {|c| c.send(:render, 'show') },
34
- :new => Proc.new {|c| c.send(:render, 'new') },
35
- :create => Proc.new {|c| c.send(:redirect_to, {:action => 'show'}) },
36
- :edit => Proc.new {|c| c.send(:render, 'edit') },
37
- :update => Proc.new {|c| c.send(:redirect_to, {:action => 'show' }) },
38
- :destroy => Proc.new {|c| c.send(:redirect_to, {:action => 'new'}) }
39
- },
40
- false => {
41
- :create => Proc.new {|c| c.send(:render, 'new') },
42
- :update => Proc.new {|c| c.send(:render, 'edit') }
43
- }
44
- }
45
-
46
- module Actions
47
- # no index on single resources
48
-
49
- def show
50
- run_callbacks(:before_find)
51
- if find_record
52
- run_callbacks(:after_find_on_success)
53
- run_callbacks(:after_find)
54
- run_callbacks(:before_response)
55
- run_callbacks(:before_response_on_success)
56
- response_for(:show, true)
57
- else
58
- run_callbacks(:after_find_on_failure)
59
- run_callbacks(:after_find)
60
- run_callbacks(:before_response)
61
- run_callbacks(:before_response_on_failure)
62
- response_for(:show, false)
63
- end
64
- end
65
-
66
- def new
67
- run_callbacks(:before_assign)
68
- new_record
69
- run_callbacks(:after_assign)
70
- run_callbacks(:before_response)
71
- run_callbacks(:before_response_on_success)
72
- response_for(:new, true)
73
- end
74
-
75
- def create
76
- run_callbacks(:before_assign)
77
- new_record
78
- run_callbacks(:after_assign)
79
-
80
- run_callbacks(:before_create)
81
- run_callbacks(:before_save)
82
-
83
- if save_record
84
- run_callbacks(:after_save_on_success)
85
- run_callbacks(:after_create_on_success)
86
- run_callbacks(:before_response)
87
- run_callbacks(:before_response_on_success)
88
- flash_for(:create, true)
89
- response_for(:create, true)
90
- else
91
- run_callbacks(:after_save_on_failure)
92
- run_callbacks(:after_create_on_failure)
93
- run_callbacks(:before_response)
94
- run_callbacks(:before_response_on_failure)
95
- flash_for(:create, false)
96
- response_for(:create, false)
97
- end
98
-
99
- end
100
-
101
- def edit
102
- run_callbacks(:before_find)
103
- if find_record
104
- run_callbacks(:after_find_on_success)
105
- run_callbacks(:after_find)
106
- run_callbacks(:before_response)
107
- run_callbacks(:before_response_on_success)
108
- response_for(:edit, true)
109
- else
110
- run_callbacks(:after_find_on_failure)
111
- run_callbacks(:after_find)
112
- run_callbacks(:before_response)
113
- run_callbacks(:before_response_on_failure)
114
- response_for(:edit, false)
115
- end
116
- end
117
-
118
- def update
119
- run_callbacks(:before_find)
120
- if find_record
121
- run_callbacks(:after_find_on_success)
122
- run_callbacks(:after_find)
123
- if update_record
124
- run_callbacks(:after_save_on_success)
125
- run_callbacks(:after_update_on_success)
126
- run_callbacks(:before_response)
127
- run_callbacks(:before_response_on_success)
128
- flash_for(:update, true)
129
- response_for(:update, true)
130
- else
131
- run_callbacks(:after_save_on_failure)
132
- run_callbacks(:after_create_on_failure)
133
- run_callbacks(:before_response)
134
- run_callbacks(:before_response_on_failure)
135
- flash_for(:update, false)
136
- response_for(:update, false)
137
- end
138
- else
139
- run_callbacks(:after_find_on_failure)
140
- run_callbacks(:after_find)
141
- run_callbacks(:before_response)
142
- run_callbacks(:before_response_on_failure)
143
- response_for(:edit, false)
144
- end
145
- end
146
-
147
- def destroy
148
- run_callbacks(:before_find)
149
- if find_record
150
- run_callbacks(:after_find_on_success)
151
- run_callbacks(:after_find)
152
- run_callbacks(:before_destroy)
153
-
154
- delete_record
155
-
156
- run_callbacks(:after_destroy_on_success)
157
- run_callbacks(:before_response)
158
- run_callbacks(:before_response_on_success)
159
- flash_for(:destroy, true)
160
- response_for(:destroy, true)
161
-
162
- else
163
- run_callbacks(:after_find_on_failure)
164
- run_callbacks(:after_find)
165
- response_for(:destroy, false)
166
- end
167
- end
168
-
169
- private
170
- def custom_response_for(action_name, action_successful)
171
- false
172
- end
173
-
174
- def default_response_for(action_name, action_successful)
175
- self.class::DefaultResponses[action_successful][action_name].call(self)
176
- end
177
-
178
- def response_for(action_name, action_successful)
179
- custom_response_for(action_name, action_successful) || default_response_for(action_name, action_successful)
180
- end
181
-
182
- def custom_flash_for(action_name, action_successful)
183
- false
184
- end
185
-
186
- def default_flash_for(action_name, action_successful)
187
- if message_proc = self.class::DefaultFlashMessages[action_successful][action_name]
188
- flash[:message] = message_proc.call(self)
189
- end
190
- end
191
-
192
- def flash_for(action_name, action_successful)
193
- custom_flash_for(action_name, action_successful) || default_flash_for(action_name, action_successful)
194
- end
195
-
196
- def resource_name
197
- self.class.resource_name
198
- end
199
-
200
- def save_record
201
- @resource.save
202
- end
203
-
204
- def update_record
205
- @resource.update_attributes(params[resource_name])
206
- end
207
-
208
- def new_record
209
- @resource = instance_variable_set("@#{resource_name}", resource_name.camelize.constantize.new(params[resource_name]))
210
- end
211
-
212
- def find_record
213
- @resource = instance_variable_set("@#{resource_name}", resource_name.camelize.constantize.find(params[:id]))
214
- end
215
-
216
- def find_records
217
- @resources = instance_variable_set("@#{resource_name.pluralize}", resource_name.camelize.constantize.all)
218
- end
219
-
220
- def delete_record
221
- @resource.destroy
222
- end
223
- end
224
- end
225
- end
226
- end
@@ -1,192 +0,0 @@
1
- # require File.dirname(__FILE__) + '/spec_helper'
2
- #
3
- # describe "a REST patterned resource of 'post'", :type => :controller do
4
- # class ShipController < ActionController::Base
5
- # expose_one :ship
6
- # end
7
- # controller_name :ship
8
- #
9
- # before(:each) do
10
- # @controller = ShipController.new
11
- # @request = ActionController::TestRequest.new
12
- # @response = ActionController::TestResponse.new
13
- # ActionController::Routing::Routes.draw do |map|
14
- # map.resource :ship
15
- # end
16
- # end
17
- #
18
- # describe 'configuration' do
19
- # it "has a resource name of 'post'" do
20
- # @controller.send(:resource_name).should == 'ship'
21
- # end
22
- #
23
- # %w(show new create edit update destroy).each do |action|
24
- # it "has the REST action #{action}" do
25
- # @controller.should respond_to(action)
26
- # end
27
- # end
28
- # end
29
- #
30
- # describe 'show' do
31
- # describe 'with found resource' do
32
- # before(:each) do
33
- # Ship.should_receive(:find).with('1').and_return(Factory.stub(:ship))
34
- # get :show, {:id => 1}
35
- # end
36
- #
37
- # it { should assign_to(:ship) }
38
- # it { should assign_to(:resource) }
39
- # it { should respond_with(:success) }
40
- # it { should render_template(:show) }
41
- # it { should_not set_the_flash }
42
- # end
43
- #
44
- # describe 'with missing resource' do
45
- # before(:each) do
46
- # rescue_action_in_public!
47
- # Ship.should_receive(:find).with('1').and_raise(ActiveRecord::RecordNotFound)
48
- # get :show, {:id => 1}
49
- # end
50
- #
51
- # it { should_not assign_to(:ship) }
52
- # it { should_not assign_to(:resource) }
53
- # it { should respond_with(:not_found) }
54
- # it { should_not render_template(:show) }
55
- # it { should_not set_the_flash }
56
- # end
57
- # end
58
- #
59
- # describe 'new' do
60
- # before(:each) do
61
- # get :new
62
- # end
63
- #
64
- # it { should assign_to(:ship) }
65
- # it { should assign_to(:resource) }
66
- # it { should respond_with(:success) }
67
- # it { should render_template(:new) }
68
- # it { should_not set_the_flash }
69
- #
70
- # end
71
- #
72
- # describe 'create' do
73
- # describe 'with valid data' do
74
- # before(:each) do
75
- # params = {
76
- # :ship => {}
77
- # }
78
- # post_before_saving = Factory.build(:ship)
79
- # Ship.should_receive(:new).with(params[:ship]).and_return(post_before_saving)
80
- # post_before_saving.should_receive(:save).and_return(true)
81
- # post(:create, params)
82
- # end
83
- #
84
- # it { should assign_to(:ship) }
85
- # it { should assign_to(:resource) }
86
- # it { should respond_with(:redirect).to(:show) }
87
- # it { should set_the_flash.to('Ship successfully created') }
88
- # end
89
- #
90
- # describe 'with invalid data' do
91
- # before(:each) do
92
- # params = {
93
- # :ship => {}
94
- # }
95
- # post_before_saving = Factory.build(:ship)
96
- # Ship.should_receive(:new).with(params[:ship]).and_return(post_before_saving)
97
- # post_before_saving.should_receive(:save).and_return(false)
98
- # post(:create, params)
99
- # end
100
- #
101
- # it { should assign_to(:ship) }
102
- # it { should assign_to(:resource) }
103
- # it { should respond_with(:success) }
104
- # it { should render_template(:new) }
105
- # it { should_not set_the_flash }
106
- # end
107
- # end
108
- #
109
- # describe 'edit' do
110
- # describe 'with found resource' do
111
- # before(:each) do
112
- # Ship.should_receive(:find).with('1').and_return(Factory.stub(:ship))
113
- # get :edit, {:id => 1}
114
- # end
115
- #
116
- # it { should assign_to(:ship) }
117
- # it { should assign_to(:resource) }
118
- # it { should respond_with(:success) }
119
- # it { should render_template(:edit) }
120
- # it { should_not set_the_flash }
121
- # end
122
- #
123
- # describe 'with missing resource' do
124
- # before(:each) do
125
- # rescue_action_in_public!
126
- # Ship.should_receive(:find).with('1').and_raise(ActiveRecord::RecordNotFound)
127
- # get :edit, {:id => 1}
128
- # end
129
- #
130
- # it { should_not assign_to(:ship) }
131
- # it { should_not assign_to(:resource) }
132
- # it { should respond_with(:not_found) }
133
- # it { should_not render_template(:edit) }
134
- # it { should_not set_the_flash }
135
- # end
136
- # end
137
- #
138
- # describe 'update' do
139
- # describe 'with valid data' do
140
- # before(:each) do
141
- # params = {
142
- # :id => 1,
143
- # :ship => {}
144
- # }
145
- # post_before_saving = Factory.build(:ship)
146
- # Ship.should_receive(:find).with("1").and_return(post_before_saving)
147
- # post_before_saving.should_receive(:update_attributes).with(params[:ship]).and_return(true)
148
- # put(:update, params)
149
- # end
150
- #
151
- # it { should assign_to(:ship) }
152
- # it { should assign_to(:resource) }
153
- # it { should respond_with(:redirect).to(:show) }
154
- # it { should set_the_flash.to('Ship successfully updated') }
155
- #
156
- # end
157
- #
158
- # describe 'with invalid data' do
159
- # before(:each) do
160
- # params = {
161
- # :id => 1,
162
- # :ship => {}
163
- # }
164
- # post_before_saving = Factory.build(:ship)
165
- # Ship.should_receive(:find).with("1").and_return(post_before_saving)
166
- # post_before_saving.should_receive(:update_attributes).with(params[:ship]).and_return(false)
167
- # put(:update, params)
168
- # end
169
- #
170
- # it { should assign_to(:ship) }
171
- # it { should assign_to(:resource) }
172
- # it { should respond_with(:success) }
173
- # it { should render_template(:edit) }
174
- # it { should_not set_the_flash }
175
- # end
176
- # end
177
- #
178
- # describe 'destroy' do
179
- # before(:each) do
180
- # params = {
181
- # :id => 1,
182
- # }
183
- # post_before_saving = Factory.build(:ship)
184
- # Ship.should_receive(:find).with("1").and_return(post_before_saving)
185
- # post_before_saving.should_receive(:destroy)
186
- # delete(:destroy, params)
187
- # end
188
- #
189
- # it { should respond_with(:redirect).to(:new) }
190
- # it { should set_the_flash.to('Ship successfully removed') }
191
- # end
192
- # end