dry_crud 2.1.0 → 2.1.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmM5NzIxMmM5YTE2YzE5YTU1NWRkNDc5OTAxODkxOGU2NjE0NTA4Mg==
4
+ YzE5OGExYmQyZDhkN2JiNGVmZjNjZGU5NTBlMTliZWU5ZTA5NDVkYw==
5
5
  data.tar.gz: !binary |-
6
- YjM3NzY0Y2VkMTllMWNmZTUwYjk1ZWRmZTgyOTgyMzA5NWFjOWU0Ng==
6
+ Yzk1Y2M5ZjJlZDk0MWYwZWUzMjA2NTc4YWMwZmUzMTlmYTdlODFjMw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YWM1ZmVjY2JlZjg4NjNiMjU1NmNlYTk3NTdlZDQzMTk2NzMzNjY0NWRlMzBm
10
- YzJmZTQ2OWNiMmNkMWZmNzllZWVmODA4NGE0Yzc4N2M5NGNmMWRhN2Y5N2U3
11
- ODg4YTFmYzNmNjk0ZTUxYWZiM2ViZDllOGZjODI1NjE3OTYyYzA=
9
+ OThmZjNlNTJhZDRkNWI5M2ZhYTBmYzQ1OGFlYTA0ZTVkYjFlZDkxN2U0MWNk
10
+ OGQzMzViYWU3OWQwY2EzMjE4ZTc4OWNlYWMwNmVjNmRlNjY3N2VjMjY5YzNk
11
+ ODhiZDAzZjUzYjVkZTMyM2ZmMDljNDNlYzRmZTM3ZDg4MTZiOWE=
12
12
  data.tar.gz: !binary |-
13
- NjU1YmUwYjVmYzdjZjg5OGZiYjE2ZmU2NGYzYTA0OTkwNTg4ZmEzM2NkY2M4
14
- OWZkNzAzZGJhNzU3NmRjM2I2MDIyZWRlMGNiM2MwNWRhZTQ5NTMxMjEzMTRk
15
- ZDUyYTZlZDc1NTk5ZWYyODRiNWUxN2RiMmU5NjJjZTg5MmE2NGE=
13
+ MThmZTk3YTQ5YWY0YWZlNDI5MDFlMmE3ZjAxZDgxNmU2ZDljN2UyNWFlZWI3
14
+ OTY2NmQxYWUyMzQyYmZhNGZlMDU3NmYyNmVhYTRmMDc5MzhkNDlmOTkzNzFl
15
+ ZGQ1OGYxNGIyNDgyY2U1ZGE5YzA5OGY0MWQ4ODMzNGJlOGJiNjM=
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.1.1
@@ -37,6 +37,10 @@ class DryCrudGenerator < DryCrudGeneratorBase
37
37
  unless exclude_test_dir == 'spec'
38
38
  template(File.join('test', 'support', 'crud_test_model.rb'),
39
39
  File.join('spec', 'support', 'crud_test_model.rb'))
40
+ template(File.join('test', 'support', 'crud_test_models_controller.rb'),
41
+ File.join('spec', 'support', 'crud_test_models_controller.rb'))
42
+ template(File.join('test', 'support', 'crud_test_helper.rb'),
43
+ File.join('spec', 'support', 'crud_test_helper.rb'))
40
44
  end
41
45
  end
42
46
 
@@ -12,7 +12,11 @@ module CrudControllerTestHelper
12
12
  params = scope_params.merge(format: m[:format])
13
13
  params.merge!(id: test_entry.id) if m[:id]
14
14
  params.merge!(example_params)
15
- send(m[:method], m[:action], params)
15
+ if m[:method] == :get && m[:format] == :js
16
+ xhr(:get, m[:action], params)
17
+ else
18
+ send(m[:method], m[:action], params)
19
+ end
16
20
  end
17
21
 
18
22
  # If a combine key is given in metadata, only the first request for all
@@ -1,5 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  require 'test_helper'
3
+ require 'support/crud_test_helper'
3
4
  require 'support/crud_test_model'
4
5
  require 'support/crud_controller_test_helper'
5
6
 
@@ -39,7 +40,7 @@ class CrudTestModelsControllerTest < ActionController::TestCase
39
40
  end
40
41
 
41
42
  def test_index_js
42
- get :index, test_params(format: 'js')
43
+ xhr :get, :index, test_params
43
44
  assert_response :success
44
45
  assert_equal 'index js', @response.body
45
46
  assert entries.present?
@@ -1,6 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  require 'test_helper'
3
3
  require 'support/crud_test_model'
4
+ require 'support/crud_test_models_controller'
4
5
 
5
6
  # Test I18nHelper
6
7
  class I18nHelperTest < ActionView::TestCase
@@ -0,0 +1,188 @@
1
+ # encoding: utf-8
2
+
3
+ #:nodoc:
4
+ REGEXP_ROWS = /<tr.+?<\/tr>/m #:nodoc:
5
+ REGEXP_HEADERS = /<th.+?<\/th>/m #:nodoc:
6
+ REGEXP_SORT_HEADERS = /<th.*?><a .*?sort_dir=asc.*?>.*?<\/a><\/th>/m #:nodoc:
7
+ REGEXP_ACTION_CELL = /<td class=\"action\"><a .*?href.+?<\/a><\/td>/m #:nodoc:
8
+
9
+ # A simple test helper to prepare the test database with a CrudTestModel model.
10
+ # This helper is used to test the CrudController and various helpers
11
+ # without the need for an application based model.
12
+ module CrudTestHelper
13
+
14
+ # Controller helper methods for the tests
15
+
16
+ def model_class
17
+ CrudTestModel
18
+ end
19
+
20
+ def controller_name
21
+ 'crud_test_models'
22
+ end
23
+
24
+ def action_name
25
+ 'index'
26
+ end
27
+
28
+ def params
29
+ {}
30
+ end
31
+
32
+ def path_args(entry)
33
+ entry
34
+ end
35
+
36
+ def sortable?(attr)
37
+ true
38
+ end
39
+
40
+ def h(text)
41
+ ERB::Util.h(text)
42
+ end
43
+
44
+ private
45
+
46
+ # Sets up the test database with a crud_test_models table.
47
+ # Look at the source to view the column definition.
48
+ def setup_db
49
+ without_transaction do
50
+ silence_stream(STDOUT) do
51
+ c = ActiveRecord::Base.connection
52
+
53
+ create_crud_test_models(c)
54
+ create_other_crud_test_models(c)
55
+ create_crud_test_models_other_crud_test_models(c)
56
+ end
57
+
58
+ CrudTestModel.reset_column_information
59
+ end
60
+ end
61
+
62
+ def create_crud_test_models(c)
63
+ c.create_table :crud_test_models, force: true do |t|
64
+ t.string :name, null: false, limit: 50
65
+ t.string :email
66
+ t.string :password
67
+ t.string :whatever
68
+ t.integer :children
69
+ t.integer :companion_id
70
+ t.float :rating
71
+ t.decimal :income, precision: 14, scale: 4
72
+ t.date :birthdate
73
+ t.time :gets_up_at
74
+ t.datetime :last_seen
75
+ t.boolean :human, default: true
76
+ t.text :remarks
77
+
78
+ t.timestamps
79
+ end
80
+ end
81
+
82
+ def create_other_crud_test_models(c)
83
+ c.create_table :other_crud_test_models, force: true do |t|
84
+ t.string :name, null: false, limit: 50
85
+ t.integer :more_id
86
+ end
87
+ end
88
+
89
+ def create_crud_test_models_other_crud_test_models(c)
90
+ c.create_table :crud_test_models_other_crud_test_models,
91
+ force: true do |t|
92
+ t.belongs_to :crud_test_model
93
+ t.belongs_to :other_crud_test_model
94
+ end
95
+ end
96
+
97
+ # Removes the crud_test_models table from the database.
98
+ def reset_db
99
+ c = ActiveRecord::Base.connection
100
+ [:crud_test_models,
101
+ :other_crud_test_models,
102
+ :crud_test_models_other_crud_test_models].each do |table|
103
+ c.drop_table(table) if c.table_exists?(table)
104
+ end
105
+ end
106
+
107
+ # Creates 6 dummy entries for the crud_test_models table.
108
+ def create_test_data
109
+ (1..6).reduce(nil) { |a, e| create(e, a) }
110
+ (1..6).each { |i| create_other(i) }
111
+ end
112
+
113
+ # Fixture-style accessor method to get CrudTestModel instances by name
114
+ def crud_test_models(name)
115
+ CrudTestModel.find_by_name(name.to_s)
116
+ end
117
+
118
+ def with_test_routing
119
+ with_routing do |set|
120
+ set.draw { resources :crud_test_models }
121
+ # used to define a controller in these tests
122
+ set.default_url_options = { controller: 'crud_test_models' }
123
+ yield
124
+ end
125
+ end
126
+
127
+ def special_routing
128
+ # test:unit uses instance variable, rspec the method
129
+ controller = @controller || @_controller || controller
130
+ @routes = ActionDispatch::Routing::RouteSet.new
131
+ _routes = @routes
132
+
133
+ controller.singleton_class.send(:include, _routes.url_helpers)
134
+ controller.view_context_class = Class.new(controller.view_context_class) do
135
+ include _routes.url_helpers
136
+ end
137
+
138
+ @routes.draw { resources :crud_test_models }
139
+ end
140
+
141
+ def create(index, companion)
142
+ c = str(index)
143
+ m = CrudTestModel.new(
144
+ name: c,
145
+ children: 10 - index,
146
+ rating: "#{index}.#{index}".to_f,
147
+ income: 10_000_000 * index + 0.1111 * index,
148
+ birthdate: "#{1900 + 10 * index}-#{index}-#{index}",
149
+ # store entire date to avoid time zone issues
150
+ gets_up_at: Time.zone.local(2000, 1, 1, index, index),
151
+ last_seen: "#{2000 + 10 * index}-#{index}-#{index} " +
152
+ "1#{index}:2#{index}",
153
+ human: index.even?,
154
+ remarks: "#{c} #{str(index + 1)} #{str(index + 2)}\n" *
155
+ (index % 3 + 1))
156
+ m.companion = companion
157
+ m.save!
158
+ m
159
+ end
160
+
161
+ def create_other(index)
162
+ c = str(index)
163
+ others = CrudTestModel.all[index..(index + 2)]
164
+ OtherCrudTestModel.create!(name: c,
165
+ other_ids: others.map(&:id),
166
+ more_id: others.first.try(:id))
167
+ end
168
+
169
+ def str(index)
170
+ (index + 64).chr * 5
171
+ end
172
+
173
+ # A hack to avoid ddl in transaction issues with mysql.
174
+ def without_transaction
175
+ c = ActiveRecord::Base.connection
176
+ start_transaction = false
177
+ if c.adapter_name.downcase.include?('mysql') && c.open_transactions > 0
178
+ # in transactional tests, we may simply rollback
179
+ c.execute('ROLLBACK')
180
+ start_transaction = true
181
+ end
182
+
183
+ yield
184
+
185
+ c.execute('BEGIN') if start_transaction
186
+ end
187
+
188
+ end
@@ -47,305 +47,4 @@ class OtherCrudTestModel < ActiveRecord::Base #:nodoc:
47
47
  end
48
48
  end
49
49
 
50
- # Controller for the dummy model.
51
- class CrudTestModelsController < CrudController #:nodoc:
52
- HANDLE_PREFIX = 'handle_'
53
50
 
54
- self.search_columns = [:name, :whatever, :remarks]
55
- self.sort_mappings = { chatty: 'length(remarks)' }
56
- self.default_sort = 'name'
57
- <% if Rails.version >= '4.0' -%>
58
- self.permitted_attrs = [:name, :email, :password, :whatever, :children,
59
- :companion_id, :rating, :income, :birthdate,
60
- :gets_up_at, :last_seen, :human, :remarks]
61
- <% end -%>
62
-
63
- before_create :possibly_redirect
64
- before_create :handle_name
65
- before_destroy :handle_name
66
-
67
- before_render_new :possibly_redirect
68
- before_render_new :set_companions
69
-
70
- attr_reader :called_callbacks
71
- attr_accessor :should_redirect
72
-
73
- hide_action :called_callbacks, :should_redirect, :should_redirect=
74
-
75
- # don't use the standard layout as it may require different routes
76
- # than just the test route for this controller
77
- layout false
78
-
79
- def index
80
- super do |format|
81
- format.js { render text: 'index js'}
82
- end
83
- end
84
-
85
- def show
86
- super do |format|
87
- format.html { render text: 'custom html' } if entry.name == 'BBBBB'
88
- end
89
- end
90
-
91
- def create
92
- super do |format|
93
- flash[:notice] = 'model got created' if entry.persisted?
94
- end
95
- end
96
-
97
- private
98
-
99
- def list_entries
100
- entries = super
101
- if params[:filter]
102
- entries = entries.where(['rating < ?', 3])
103
- .except(:order)
104
- .order('children DESC')
105
- end
106
- entries
107
- end
108
-
109
- private
110
-
111
- def build_entry
112
- entry = super
113
- if params[model_identifier]
114
- entry.companion_id = model_params.delete(:companion_id)
115
- end
116
- entry
117
- end
118
-
119
- # custom callback
120
- def handle_name
121
- if entry.name == 'illegal'
122
- flash[:alert] = 'illegal name'
123
- false
124
- end
125
- end
126
-
127
- # callback to redirect if @should_redirect is set
128
- def possibly_redirect
129
- redirect_to action: 'index' if should_redirect && !performed?
130
- !should_redirect
131
- end
132
-
133
- def set_companions
134
- @companions = CrudTestModel.where(human: true)
135
- end
136
-
137
- # create callback methods that record the before/after callbacks
138
- [:create, :update, :save, :destroy].each do |a|
139
- callback = "before_#{a.to_s}"
140
- send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
141
- callback = "after_#{a.to_s}"
142
- send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
143
- end
144
-
145
- # create callback methods that record the before_render callbacks
146
- [:index, :show, :new, :edit, :form].each do |a|
147
- callback = "before_render_#{a.to_s}"
148
- send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
149
- end
150
-
151
- # handle the called callbacks
152
- def method_missing(sym, *args)
153
- if sym.to_s.starts_with?(HANDLE_PREFIX)
154
- called_callback(sym.to_s[HANDLE_PREFIX.size..-1].to_sym)
155
- end
156
- end
157
-
158
- # records a callback
159
- def called_callback(callback)
160
- @called_callbacks ||= []
161
- @called_callbacks << callback
162
- end
163
-
164
- end
165
-
166
- #:nodoc:
167
- REGEXP_ROWS = /<tr.+?<\/tr>/m #:nodoc:
168
- REGEXP_HEADERS = /<th.+?<\/th>/m #:nodoc:
169
- REGEXP_SORT_HEADERS = /<th.*?><a .*?sort_dir=asc.*?>.*?<\/a><\/th>/m #:nodoc:
170
- REGEXP_ACTION_CELL = /<td class=\"action\"><a .*?href.+?<\/a><\/td>/m #:nodoc:
171
-
172
- # A simple test helper to prepare the test database with a CrudTestModel model.
173
- # This helper is used to test the CrudController and various helpers
174
- # without the need for an application based model.
175
- module CrudTestHelper
176
-
177
- # Controller helper methods for the tests
178
-
179
- def model_class
180
- CrudTestModel
181
- end
182
-
183
- def controller_name
184
- 'crud_test_models'
185
- end
186
-
187
- def action_name
188
- 'index'
189
- end
190
-
191
- def params
192
- {}
193
- end
194
-
195
- def path_args(entry)
196
- entry
197
- end
198
-
199
- def sortable?(attr)
200
- true
201
- end
202
-
203
- def h(text)
204
- ERB::Util.h(text)
205
- end
206
-
207
- private
208
-
209
- # Sets up the test database with a crud_test_models table.
210
- # Look at the source to view the column definition.
211
- def setup_db
212
- without_transaction do
213
- silence_stream(STDOUT) do
214
- c = ActiveRecord::Base.connection
215
-
216
- create_crud_test_models(c)
217
- create_other_crud_test_models(c)
218
- create_crud_test_models_other_crud_test_models(c)
219
- end
220
-
221
- CrudTestModel.reset_column_information
222
- end
223
- end
224
-
225
- def create_crud_test_models(c)
226
- c.create_table :crud_test_models, force: true do |t|
227
- t.string :name, null: false, limit: 50
228
- t.string :email
229
- t.string :password
230
- t.string :whatever
231
- t.integer :children
232
- t.integer :companion_id
233
- t.float :rating
234
- t.decimal :income, precision: 14, scale: 4
235
- t.date :birthdate
236
- t.time :gets_up_at
237
- t.datetime :last_seen
238
- t.boolean :human, default: true
239
- t.text :remarks
240
-
241
- t.timestamps
242
- end
243
- end
244
-
245
- def create_other_crud_test_models(c)
246
- c.create_table :other_crud_test_models, force: true do |t|
247
- t.string :name, null: false, limit: 50
248
- t.integer :more_id
249
- end
250
- end
251
-
252
- def create_crud_test_models_other_crud_test_models(c)
253
- c.create_table :crud_test_models_other_crud_test_models,
254
- force: true do |t|
255
- t.belongs_to :crud_test_model
256
- t.belongs_to :other_crud_test_model
257
- end
258
- end
259
-
260
- # Removes the crud_test_models table from the database.
261
- def reset_db
262
- c = ActiveRecord::Base.connection
263
- [:crud_test_models,
264
- :other_crud_test_models,
265
- :crud_test_models_other_crud_test_models].each do |table|
266
- c.drop_table(table) if c.table_exists?(table)
267
- end
268
- end
269
-
270
- # Creates 6 dummy entries for the crud_test_models table.
271
- def create_test_data
272
- (1..6).reduce(nil) { |a, e| create(e, a) }
273
- (1..6).each { |i| create_other(i) }
274
- end
275
-
276
- # Fixture-style accessor method to get CrudTestModel instances by name
277
- def crud_test_models(name)
278
- CrudTestModel.find_by_name(name.to_s)
279
- end
280
-
281
- def with_test_routing
282
- with_routing do |set|
283
- set.draw { resources :crud_test_models }
284
- # used to define a controller in these tests
285
- set.default_url_options = { controller: 'crud_test_models' }
286
- yield
287
- end
288
- end
289
-
290
- def special_routing
291
- # test:unit uses instance variable, rspec the method
292
- controller = @controller || controller
293
- @routes = ActionDispatch::Routing::RouteSet.new
294
- _routes = @routes
295
-
296
- controller.singleton_class.send(:include, _routes.url_helpers)
297
- controller.view_context_class = Class.new(controller.view_context_class) do
298
- include _routes.url_helpers
299
- end
300
-
301
- @routes.draw { resources :crud_test_models }
302
- end
303
-
304
- def create(index, companion)
305
- c = str(index)
306
- m = CrudTestModel.new(
307
- name: c,
308
- children: 10 - index,
309
- rating: "#{index}.#{index}".to_f,
310
- income: 10_000_000 * index + 0.1111 * index,
311
- birthdate: "#{1900 + 10 * index}-#{index}-#{index}",
312
- # store entire date to avoid time zone issues
313
- gets_up_at: Time.zone.local(2000, 1, 1, index, index),
314
- last_seen: "#{2000 + 10 * index}-#{index}-#{index} " +
315
- "1#{index}:2#{index}",
316
- human: index.even?,
317
- remarks: "#{c} #{str(index + 1)} #{str(index + 2)}\n" *
318
- (index % 3 + 1))
319
- m.companion = companion
320
- m.save!
321
- m
322
- end
323
-
324
- def create_other(index)
325
- c = str(index)
326
- others = CrudTestModel.all[index..(index + 2)]
327
- OtherCrudTestModel.create!(name: c,
328
- other_ids: others.map(&:id),
329
- more_id: others.first.try(:id))
330
- end
331
-
332
- def str(index)
333
- (index + 64).chr * 5
334
- end
335
-
336
- # A hack to avoid ddl in transaction issues with mysql.
337
- def without_transaction
338
- c = ActiveRecord::Base.connection
339
- start_transaction = false
340
- if c.adapter_name.downcase.include?('mysql') && c.open_transactions > 0
341
- # in transactional tests, we may simply rollback
342
- c.execute('ROLLBACK')
343
- start_transaction = true
344
- end
345
-
346
- yield
347
-
348
- c.execute('BEGIN') if start_transaction
349
- end
350
-
351
- end
@@ -0,0 +1,117 @@
1
+ # encoding: utf-8
2
+
3
+ # Controller for the dummy model.
4
+ class CrudTestModelsController < CrudController #:nodoc:
5
+ HANDLE_PREFIX = 'handle_'
6
+
7
+ self.search_columns = [:name, :whatever, :remarks]
8
+ self.sort_mappings = { chatty: 'length(remarks)' }
9
+ self.default_sort = 'name'
10
+ <% if Rails.version >= '4.0' -%>
11
+ self.permitted_attrs = [:name, :email, :password, :whatever, :children,
12
+ :companion_id, :rating, :income, :birthdate,
13
+ :gets_up_at, :last_seen, :human, :remarks]
14
+ <% end -%>
15
+
16
+ before_create :possibly_redirect
17
+ before_create :handle_name
18
+ before_destroy :handle_name
19
+
20
+ before_render_new :possibly_redirect
21
+ before_render_new :set_companions
22
+
23
+ attr_reader :called_callbacks
24
+ attr_accessor :should_redirect
25
+
26
+ hide_action :called_callbacks, :should_redirect, :should_redirect=
27
+
28
+ # don't use the standard layout as it may require different routes
29
+ # than just the test route for this controller
30
+ layout false
31
+
32
+ def index
33
+ super do |format|
34
+ format.js { render text: 'index js'}
35
+ end
36
+ end
37
+
38
+ def show
39
+ super do |format|
40
+ format.html { render text: 'custom html' } if entry.name == 'BBBBB'
41
+ end
42
+ end
43
+
44
+ def create
45
+ super do |format|
46
+ flash[:notice] = 'model got created' if entry.persisted?
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def list_entries
53
+ entries = super
54
+ if params[:filter]
55
+ entries = entries.where(['rating < ?', 3])
56
+ .except(:order)
57
+ .order('children DESC')
58
+ end
59
+ entries
60
+ end
61
+
62
+ private
63
+
64
+ def build_entry
65
+ entry = super
66
+ if params[model_identifier]
67
+ entry.companion_id = model_params.delete(:companion_id)
68
+ end
69
+ entry
70
+ end
71
+
72
+ # custom callback
73
+ def handle_name
74
+ if entry.name == 'illegal'
75
+ flash[:alert] = 'illegal name'
76
+ false
77
+ end
78
+ end
79
+
80
+ # callback to redirect if @should_redirect is set
81
+ def possibly_redirect
82
+ redirect_to action: 'index' if should_redirect && !performed?
83
+ !should_redirect
84
+ end
85
+
86
+ def set_companions
87
+ @companions = CrudTestModel.where(human: true)
88
+ end
89
+
90
+ # create callback methods that record the before/after callbacks
91
+ [:create, :update, :save, :destroy].each do |a|
92
+ callback = "before_#{a.to_s}"
93
+ send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
94
+ callback = "after_#{a.to_s}"
95
+ send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
96
+ end
97
+
98
+ # create callback methods that record the before_render callbacks
99
+ [:index, :show, :new, :edit, :form].each do |a|
100
+ callback = "before_render_#{a.to_s}"
101
+ send(callback.to_sym, :"#{HANDLE_PREFIX}#{callback}")
102
+ end
103
+
104
+ # handle the called callbacks
105
+ def method_missing(sym, *args)
106
+ if sym.to_s.starts_with?(HANDLE_PREFIX)
107
+ called_callback(sym.to_s[HANDLE_PREFIX.size..-1].to_sym)
108
+ end
109
+ end
110
+
111
+ # records a callback
112
+ def called_callback(callback)
113
+ @called_callbacks ||= []
114
+ @called_callbacks << callback
115
+ end
116
+
117
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Zumkehr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-23 00:00:00.000000000 Z
11
+ date: 2014-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -134,7 +134,9 @@ files:
134
134
  - lib/generators/dry_crud/templates/test/helpers/table_helper_test.rb
135
135
  - lib/generators/dry_crud/templates/test/helpers/utility_helper_test.rb
136
136
  - lib/generators/dry_crud/templates/test/support/crud_controller_test_helper.rb
137
+ - lib/generators/dry_crud/templates/test/support/crud_test_helper.rb
137
138
  - lib/generators/dry_crud/templates/test/support/crud_test_model.rb
139
+ - lib/generators/dry_crud/templates/test/support/crud_test_models_controller.rb
138
140
  - lib/generators/dry_crud/templates/test/support/custom_assertions.rb
139
141
  - MIT-LICENSE
140
142
  - README.rdoc