dry_crud 6.0.0 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +2 -2
  3. data/README.rdoc +7 -6
  4. data/VERSION +1 -1
  5. data/app/assets/stylesheets/sample.scss +45 -24
  6. data/app/controllers/crud_controller.rb +19 -19
  7. data/app/controllers/dry_crud/generic_model.rb +2 -4
  8. data/app/controllers/dry_crud/render_callbacks.rb +3 -3
  9. data/app/controllers/list_controller.rb +1 -1
  10. data/app/helpers/actions_helper.rb +7 -7
  11. data/app/helpers/dry_crud/form/builder.rb +40 -43
  12. data/app/helpers/dry_crud/form/control.rb +8 -11
  13. data/app/helpers/dry_crud/table/actions.rb +12 -12
  14. data/app/helpers/dry_crud/table/builder.rb +10 -10
  15. data/app/helpers/dry_crud/table/col.rb +4 -4
  16. data/app/helpers/form_helper.rb +6 -8
  17. data/app/helpers/format_helper.rb +7 -7
  18. data/app/helpers/i18n_helper.rb +5 -5
  19. data/app/helpers/table_helper.rb +15 -16
  20. data/app/helpers/utility_helper.rb +3 -3
  21. data/app/views/crud/new.html.erb +1 -1
  22. data/app/views/crud/new.html.haml +1 -1
  23. data/app/views/layouts/application.html.erb +8 -6
  24. data/app/views/layouts/application.html.haml +6 -5
  25. data/app/views/list/_search.html.erb +1 -3
  26. data/app/views/list/_search.html.haml +1 -2
  27. data/app/views/shared/_error_messages.html.erb +2 -2
  28. data/lib/generators/dry_crud/dry_crud_generator.rb +1 -1
  29. data/lib/generators/dry_crud/templates/spec/controllers/crud_test_models_controller_spec.rb +4 -4
  30. data/lib/generators/dry_crud/templates/spec/helpers/dry_crud/form/builder_spec.rb +3 -3
  31. data/lib/generators/dry_crud/templates/spec/helpers/dry_crud/table/builder_spec.rb +1 -1
  32. data/lib/generators/dry_crud/templates/spec/helpers/form_helper_spec.rb +6 -5
  33. data/lib/generators/dry_crud/templates/spec/helpers/format_helper_spec.rb +2 -2
  34. data/lib/generators/dry_crud/templates/spec/helpers/table_helper_spec.rb +6 -6
  35. data/lib/generators/dry_crud/templates/spec/helpers/utility_helper_spec.rb +2 -2
  36. data/lib/generators/dry_crud/templates/spec/support/crud_controller_examples.rb +4 -6
  37. data/lib/generators/dry_crud/templates/spec/support/crud_controller_test_helper.rb +3 -3
  38. data/lib/generators/dry_crud/templates/test/controllers/crud_test_models_controller_test.rb +1 -1
  39. data/lib/generators/dry_crud/templates/test/helpers/custom_assertions_test.rb +5 -5
  40. data/lib/generators/dry_crud/templates/test/helpers/dry_crud/form/builder_test.rb +3 -3
  41. data/lib/generators/dry_crud/templates/test/helpers/form_helper_test.rb +8 -8
  42. data/lib/generators/dry_crud/templates/test/helpers/table_helper_test.rb +7 -7
  43. data/lib/generators/dry_crud/templates/test/helpers/utility_helper_test.rb +2 -2
  44. data/lib/generators/dry_crud/templates/test/support/crud_test_helper.rb +6 -6
  45. data/lib/generators/dry_crud/templates/test/support/crud_test_model.rb +2 -3
  46. data/lib/generators/dry_crud/templates/test/support/crud_test_models_controller.rb +4 -6
  47. data/lib/generators/dry_crud/templates/test/support/custom_assertions.rb +6 -6
  48. metadata +9 -10
@@ -15,11 +15,11 @@ describe FormatHelper do
15
15
  after(:all) { reset_db }
16
16
 
17
17
  # define some test format_ methods
18
- def format_size(obj) #:nodoc:
18
+ def format_size(obj) # :nodoc:
19
19
  "#{f(obj.size)} items"
20
20
  end
21
21
 
22
- def format_string_size(obj) #:nodoc:
22
+ def format_string_size(obj) # :nodoc:
23
23
  "#{f(obj.size)} chars"
24
24
  end
25
25
 
@@ -34,7 +34,7 @@ describe TableHelper do
34
34
  it { is_expected.to be_html_safe }
35
35
 
36
36
  it 'handles empty data' do
37
- is_expected.to match(/div class=.table.\>.+\<\/div\>/)
37
+ is_expected.to match(/div class=.table.>.+<\/div>/)
38
38
  end
39
39
  end
40
40
 
@@ -46,7 +46,7 @@ describe TableHelper do
46
46
  it { is_expected.to be_html_safe }
47
47
 
48
48
  it 'renders table' do
49
- is_expected.to match(/^\<table.*\<\/table\>$/)
49
+ is_expected.to match(/^<table.*<\/table>$/)
50
50
  end
51
51
  end
52
52
  end
@@ -87,7 +87,7 @@ describe TableHelper do
87
87
  with_test_routing do
88
88
  list_table do |t|
89
89
  t.attrs :name, :children, :companion_id
90
- t.col('head') { |e| content_tag(:span, e.income.to_s) }
90
+ t.col('head') { |e| tag.span(e.income.to_s) }
91
91
  end
92
92
  end
93
93
  end
@@ -113,7 +113,7 @@ describe TableHelper do
113
113
  subject do
114
114
  with_test_routing do
115
115
  list_table(:name, :children, :companion_id) do |t|
116
- t.col('head') { |e| content_tag(:span, e.income.to_s) }
116
+ t.col('head') { |e| tag.span(e.income.to_s) }
117
117
  end
118
118
  end
119
119
  end
@@ -223,7 +223,7 @@ describe TableHelper do
223
223
  with_test_routing do
224
224
  crud_table do |t|
225
225
  t.attrs :name, :children, :companion_id
226
- t.col('head') { |e| content_tag(:span, e.income.to_s) }
226
+ t.col('head') { |e| tag.span(e.income.to_s) }
227
227
  end
228
228
  end
229
229
  end
@@ -245,7 +245,7 @@ describe TableHelper do
245
245
  subject do
246
246
  with_test_routing do
247
247
  crud_table(:name, :children, :companion_id) do |t|
248
- t.col('head') { |e| content_tag(:span, e.income.to_s) }
248
+ t.col('head') { |e| tag.span(e.income.to_s) }
249
249
  end
250
250
  end
251
251
  end
@@ -33,7 +33,7 @@ describe UtilityHelper do
33
33
  describe '#content_tag_nested' do
34
34
 
35
35
  it 'escapes safe content' do
36
- html = content_tag_nested(:div, %w[a b]) { |e| content_tag(:span, e) }
36
+ html = content_tag_nested(:div, %w[a b]) { |e| tag.span(e) }
37
37
  expect(html).to be_html_safe
38
38
  expect(html).to eq('<div><span>a</span><span>b</span></div>')
39
39
  end
@@ -56,7 +56,7 @@ describe UtilityHelper do
56
56
  end
57
57
 
58
58
  it 'collects contents for array' do
59
- html = safe_join(%w[a b]) { |e| content_tag(:span, e) }
59
+ html = safe_join(%w[a b]) { |e| tag.span(e) }
60
60
  expect(html).to eq('<span>a</span><span>b</span>')
61
61
  end
62
62
  end
@@ -36,9 +36,7 @@ shared_examples 'crud controller' do |options|
36
36
 
37
37
  before do
38
38
  m = RSpec.current_example.metadata
39
- if m[:perform_request] != false && m[:action] && m[:method]
40
- perform_combined_request
41
- end
39
+ perform_combined_request if m[:perform_request] != false && m[:action] && m[:method]
42
40
  end
43
41
 
44
42
  describe_action :get, :index,
@@ -144,7 +142,7 @@ shared_examples 'crud controller' do |options|
144
142
  unless: skip?(options, %w[new plain]),
145
143
  combine: 'new' do
146
144
  it_is_expected_to_respond
147
- it_is_expected_to_persist_entry(false)
145
+ it_is_expected_to_persist_entry(persist: false)
148
146
  end
149
147
 
150
148
  context 'with params',
@@ -179,7 +177,7 @@ shared_examples 'crud controller' do |options|
179
177
  failing: true,
180
178
  unless: skip?(options, %w[create html invalid]),
181
179
  combine: 'chi' do
182
- it_is_expected_to_persist_entry(false)
180
+ it_is_expected_to_persist_entry(persist: false)
183
181
  it_is_expected_to_set_attrs(:new)
184
182
  it_is_expected_to_not_have_flash(:notice)
185
183
  end
@@ -205,7 +203,7 @@ shared_examples 'crud controller' do |options|
205
203
  it_is_expected_to_respond(422)
206
204
  it_is_expected_to_set_attrs(:new)
207
205
  it_is_expected_to_render_json
208
- it_is_expected_to_persist_entry(false)
206
+ it_is_expected_to_persist_entry(persist: false)
209
207
  end
210
208
  end
211
209
  end
@@ -117,7 +117,7 @@ module CrudControllerTestHelper
117
117
  it 'sets params as entry attributes' do
118
118
  attrs = send("#{action}_entry_attrs")
119
119
  actual = {}
120
- attrs.keys.each do |key|
120
+ attrs.each_key do |key|
121
121
  actual[key] = entry.attributes[key.to_s]
122
122
  end
123
123
  expect(actual).to eq(attrs)
@@ -156,11 +156,11 @@ module CrudControllerTestHelper
156
156
  end
157
157
 
158
158
  # Test that the current entry is persistend and valid, or not.
159
- def it_is_expected_to_persist_entry(bool = true)
159
+ def it_is_expected_to_persist_entry(persist: true)
160
160
  context 'entry' do
161
161
  subject { entry }
162
162
 
163
- if bool
163
+ if persist
164
164
  it { is_expected.not_to be_new_record }
165
165
  it { is_expected.to be_valid }
166
166
  else
@@ -295,7 +295,7 @@ class CrudTestModelsControllerTest < ActionController::TestCase
295
295
 
296
296
  def test_models_label
297
297
  assert_equal 'Crud Test Models', @controller.models_label
298
- assert_equal 'Crud Test Model', @controller.models_label(false)
298
+ assert_equal 'Crud Test Model', @controller.models_label(plural: false)
299
299
  end
300
300
 
301
301
  private
@@ -25,7 +25,7 @@ class CustomAssertionsTest < ActiveSupport::TestCase
25
25
  end
26
26
 
27
27
  test 'assert count fails if count does not match' do
28
- assert_raise(MiniTest::Assertion) do
28
+ assert_raise(Minitest::Assertion) do
29
29
  assert_count 2, 'ba', 'barbabapa'
30
30
  end
31
31
  end
@@ -37,7 +37,7 @@ class CustomAssertionsTest < ActiveSupport::TestCase
37
37
  end
38
38
 
39
39
  test 'assert valid record fails for invalid' do
40
- assert_raise(MiniTest::Assertion) do
40
+ assert_raise(Minitest::Assertion) do
41
41
  assert_valid invalid_record
42
42
  end
43
43
  end
@@ -55,19 +55,19 @@ class CustomAssertionsTest < ActiveSupport::TestCase
55
55
  end
56
56
 
57
57
  test 'assert not valid fails if record valid' do
58
- assert_raise(MiniTest::Assertion) do
58
+ assert_raise(Minitest::Assertion) do
59
59
  assert_not_valid crud_test_models('AAAAA')
60
60
  end
61
61
  end
62
62
 
63
63
  test 'assert not valid fails if record invalid and valid attrs given' do
64
- assert_raise(MiniTest::Assertion) do
64
+ assert_raise(Minitest::Assertion) do
65
65
  assert_not_valid invalid_record, :name, :rating, :children
66
66
  end
67
67
  end
68
68
 
69
69
  test 'assert not valid fails if not all invalid attrs given' do
70
- assert_raise(MiniTest::Assertion) do
70
+ assert_raise(Minitest::Assertion) do
71
71
  assert_not_valid invalid_record, :name
72
72
  end
73
73
  end
@@ -97,15 +97,15 @@ module DryCrud
97
97
 
98
98
  test 'labeld_input_field adds required mark' do
99
99
  result = form.labeled_input_field(:name)
100
- assert result.include?('input-group-append')
100
+ assert result.include?('input-group-text')
101
101
  result = form.labeled_input_field(:remarks)
102
- assert_not result.include?('input-group-append')
102
+ assert_not result.include?('input-group-text')
103
103
  end
104
104
 
105
105
  test 'labeld_input_field adds help text' do
106
106
  result = form.labeled_input_field(:name, help: 'Some Help')
107
107
  assert result.include?(form.help_block('Some Help'))
108
- assert result.include?('input-group-append')
108
+ assert result.include?('input-group-text')
109
109
  end
110
110
 
111
111
  test 'belongs_to_field has all options by default' do
@@ -57,16 +57,16 @@ class FormHelperTest < ActionView::TestCase
57
57
  assert_match(/input .*?type="date"
58
58
  .*?name="crud_test_model\[birthdate\]"/x, f)
59
59
  assert_match(/input .*?type="number"
60
- .*?value=\"9\"
60
+ .*?value="9"
61
61
  .*?name="crud_test_model\[children\]"/x, f)
62
62
  assert_match(/input .*?type="checkbox"
63
63
  .*?name="crud_test_model\[human\]"/x, f)
64
- assert_match(/button\ .*?type="submit".*\>
64
+ assert_match(/button\ .*?type="submit".*>
65
65
  #{t('global.button.save')}
66
- \<\/button\>/x, f)
67
- assert_match(/\<a\ .*href="\/somewhere".*\>
66
+ <\/button>/x, f)
67
+ assert_match(/<a\ .*href="\/somewhere".*>
68
68
  #{t('global.button.cancel')}
69
- \<\/a\>/x, f)
69
+ <\/a>/x, f)
70
70
  end
71
71
 
72
72
  test 'standard form with errors' do
@@ -88,9 +88,9 @@ class FormHelperTest < ActionView::TestCase
88
88
  .*?name="_method"
89
89
  .*?value="(patch|put)"/x, f)
90
90
  assert_match(/div[^>]* id='error_explanation'/, f)
91
- assert_match(/div\ class="form-group\ has-error"\>.*?
92
- \<input .*?type="text"
93
- .*?name="crud_test_model\[name\]"/x, f)
91
+ assert_match(/input .*?class="is-invalid\ form-control"
92
+ .*?type="text"
93
+ .*?name="crud_test_model\[name\]"/x, f)
94
94
  assert_match(/input .*?value="1910-01-01"
95
95
  .*?type="date"
96
96
  .*?name="crud_test_model\[birthdate\]"/x, f)
@@ -31,9 +31,9 @@ class TableHelperTest < ActionView::TestCase
31
31
  end
32
32
 
33
33
  test 'empty table renders message' do
34
- result = plain_table_or_message([]) {}
34
+ result = plain_table_or_message([])
35
35
  assert result.html_safe?
36
- assert_match(/\<div class=["']table["']\>.*\<\/div\>/, result)
36
+ assert_match(/<div class=["']table["']>.*<\/div>/, result)
37
37
  end
38
38
 
39
39
  test 'non empty table renders table' do
@@ -41,7 +41,7 @@ class TableHelperTest < ActionView::TestCase
41
41
  t.attrs :size, :upcase
42
42
  end
43
43
  assert result.html_safe?
44
- assert_match(/^\<table.*\<\/table\>$/, result)
44
+ assert_match(/^<table.*<\/table>$/, result)
45
45
  end
46
46
 
47
47
  test 'table with attrs' do
@@ -84,7 +84,7 @@ class TableHelperTest < ActionView::TestCase
84
84
  table = with_test_routing do
85
85
  list_table do |t|
86
86
  t.attrs :name, :children, :companion_id
87
- t.col('head') { |e| content_tag :span, e.income.to_s }
87
+ t.col('head') { |e| tag.span(e.income.to_s) }
88
88
  end
89
89
  end
90
90
 
@@ -99,7 +99,7 @@ class TableHelperTest < ActionView::TestCase
99
99
 
100
100
  table = with_test_routing do
101
101
  list_table :name, :children, :companion_id do |t|
102
- t.col('head') { |e| content_tag :span, e.income.to_s }
102
+ t.col('head') { |e| tag.span(e.income.to_s) }
103
103
  end
104
104
  end
105
105
 
@@ -181,7 +181,7 @@ class TableHelperTest < ActionView::TestCase
181
181
  table = with_test_routing do
182
182
  crud_table do |t|
183
183
  t.attrs :name, :children, :companion_id
184
- t.col('head') { |e| content_tag :span, e.income.to_s }
184
+ t.col('head') { |e| tag.span(e.income.to_s) }
185
185
  end
186
186
  end
187
187
 
@@ -196,7 +196,7 @@ class TableHelperTest < ActionView::TestCase
196
196
 
197
197
  table = with_test_routing do
198
198
  crud_table :name, :children, :companion_id do |t|
199
- t.col('head') { |e| content_tag :span, e.income.to_s }
199
+ t.col('head') { |e| tag.span(e.income.to_s) }
200
200
  end
201
201
  end
202
202
 
@@ -10,7 +10,7 @@ class UtilityHelperTest < ActionView::TestCase
10
10
  teardown :reset_db
11
11
 
12
12
  test 'content_tag_nested escapes safe correctly' do
13
- html = content_tag_nested(:div, %w[a b]) { |e| content_tag(:span, e) }
13
+ html = content_tag_nested(:div, %w[a b]) { |e| tag.span(e) }
14
14
  assert_equal '<div><span>a</span><span>b</span></div>', html
15
15
  end
16
16
 
@@ -30,7 +30,7 @@ class UtilityHelperTest < ActionView::TestCase
30
30
  end
31
31
 
32
32
  test 'safe_join with block' do
33
- html = safe_join(%w[a b]) { |e| content_tag(:span, e) }
33
+ html = safe_join(%w[a b]) { |e| tag.span(e) }
34
34
  assert_equal '<span>a</span><span>b</span>', html
35
35
  end
36
36
 
@@ -1,8 +1,8 @@
1
- #:nodoc:
1
+ # :nodoc:
2
2
  REGEXP_ROWS = /<tr.+?<\/tr>/m.freeze
3
3
  REGEXP_HEADERS = /<th.+?<\/th>/m.freeze
4
4
  REGEXP_SORT_HEADERS = /<th.*?><a .*?sort_dir=asc.*?>.*?<\/a><\/th>/m.freeze
5
- REGEXP_ACTION_CELL = /<td class=\"action\"><a .*?href.+?<\/a><\/td>/m.freeze
5
+ REGEXP_ACTION_CELL = /<td class="action"><a .*?href.+?<\/a><\/td>/m.freeze
6
6
 
7
7
  # A simple test helper to prepare the test database with a CrudTestModel model.
8
8
  # This helper is used to test the CrudController and various helpers
@@ -150,15 +150,15 @@ module CrudTestHelper
150
150
  name: c,
151
151
  children: 10 - index,
152
152
  rating: "#{index}.#{index}".to_f,
153
- income: 10_000_000 * index + 0.1111 * index,
154
- birthdate: "#{1900 + 10 * index}-#{index}-#{index}",
153
+ income: (10_000_000 * index) + (0.1111 * index),
154
+ birthdate: "#{1900 + (10 * index)}-#{index}-#{index}",
155
155
  # store entire date to avoid time zone issues
156
156
  gets_up_at: Time.zone.local(2000, 1, 1, index, index),
157
- last_seen: "#{2000 + 10 * index}-#{index}-#{index} " \
157
+ last_seen: "#{2000 + (10 * index)}-#{index}-#{index} " \
158
158
  "1#{index}:2#{index}",
159
159
  human: index.even?,
160
160
  remarks: "#{c} #{str(index + 1)} #{str(index + 2)}\n" *
161
- (index % 3 + 1)
161
+ ((index % 3) + 1)
162
162
  )
163
163
  m.companion = companion
164
164
  m.save!
@@ -1,5 +1,5 @@
1
1
  # A dummy model used for general testing.
2
- class CrudTestModel < ApplicationRecord #:nodoc:
2
+ class CrudTestModel < ApplicationRecord # :nodoc:
3
3
 
4
4
  belongs_to :companion, class_name: 'CrudTestModel', optional: true
5
5
  has_and_belongs_to_many :others, class_name: 'OtherCrudTestModel'
@@ -33,11 +33,10 @@ class CrudTestModel < ApplicationRecord #:nodoc:
33
33
  end
34
34
 
35
35
  # Second dummy model to test associations.
36
- class OtherCrudTestModel < ApplicationRecord #:nodoc:
36
+ class OtherCrudTestModel < ApplicationRecord # :nodoc:
37
37
 
38
38
  has_and_belongs_to_many :others, class_name: 'CrudTestModel'
39
39
  belongs_to :more,
40
- foreign_key: :more_id,
41
40
  class_name: 'CrudTestModel',
42
41
  optional: true
43
42
 
@@ -1,5 +1,5 @@
1
1
  # Controller for the dummy model.
2
- class CrudTestModelsController < CrudController #:nodoc:
2
+ class CrudTestModelsController < CrudController # :nodoc:
3
3
 
4
4
  HANDLE_PREFIX = 'handle_'.freeze
5
5
 
@@ -9,7 +9,7 @@ class CrudTestModelsController < CrudController #:nodoc:
9
9
  self.permitted_attrs = [:name, :email, :password, :whatever, :children,
10
10
  :companion_id, :rating, :income, :birthdate,
11
11
  :gets_up_at, :last_seen, :human, :remarks,
12
- other_ids: []]
12
+ { other_ids: [] }]
13
13
 
14
14
  before_create :possibly_redirect
15
15
  before_create :handle_name
@@ -54,9 +54,7 @@ class CrudTestModelsController < CrudController #:nodoc:
54
54
 
55
55
  def build_entry
56
56
  entry = super
57
- if params[model_identifier]
58
- entry.companion_id = model_params.delete(:companion_id)
59
- end
57
+ entry.companion_id = model_params.delete(:companion_id) if params[model_identifier]
60
58
  entry
61
59
  end
62
60
 
@@ -94,7 +92,7 @@ class CrudTestModelsController < CrudController #:nodoc:
94
92
  # handle the called callbacks
95
93
  def method_missing(sym, *_args)
96
94
  if sym.to_s.starts_with?(HANDLE_PREFIX)
97
- called_callback(sym.to_s[HANDLE_PREFIX.size..-1].to_sym)
95
+ called_callback(sym.to_s[HANDLE_PREFIX.size..].to_sym)
98
96
  else
99
97
  super
100
98
  end
@@ -14,7 +14,7 @@ module CustomAssertions
14
14
  actual = string.scan(regexp).size
15
15
  msg = message(msg) do
16
16
  "Expected #{mu_pp(regexp)} to occur #{expected} time(s), " \
17
- "but occured #{actual} time(s) in \n#{mu_pp(string)}"
17
+ "but occured #{actual} time(s) in \n#{mu_pp(string)}"
18
18
  end
19
19
  assert expected == actual, msg
20
20
  end
@@ -50,7 +50,7 @@ module CustomAssertions
50
50
  # The method used to by Test::Unit to format arguments.
51
51
  # Prints ActiveRecord objects in a simpler format.
52
52
  def mu_pp(obj)
53
- if obj.is_a?(ActiveRecord::Base) #:nodoc:
53
+ if obj.is_a?(ActiveRecord::Base) # :nodoc:
54
54
  obj.to_s
55
55
  else
56
56
  super
@@ -69,12 +69,12 @@ module CustomAssertions
69
69
  end
70
70
 
71
71
  def assert_other_attrs_have_no_errors(record, *invalid_attrs)
72
- record.errors.each do |a, error|
72
+ record.errors.each do |error|
73
73
  msg = message do
74
- "Attribute #{mu_pp(a)} not declared as invalid attribute, " \
75
- "but has the following error(s):\n#{mu_pp(error)}"
74
+ "Attribute #{mu_pp(error.attribute)} not declared as invalid attribute, " \
75
+ "but has the following error(s):\n#{mu_pp(error.message)}"
76
76
  end
77
- assert invalid_attrs.include?(a), msg
77
+ assert invalid_attrs.include?(error.attribute), msg
78
78
  end
79
79
  end
80
80
 
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: 6.0.0
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Zumkehr
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-08 00:00:00.000000000 Z
11
+ date: 2023-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,19 +16,19 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '7.1'
20
20
  type: :runtime
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: '6.0'
26
+ version: '7.1'
27
27
  description: |
28
28
  Generates simple and extendable controller, views and helpers that support you
29
29
  to DRY up the CRUD code in your Rails project. Start with these elements and
30
30
  build a clean base to efficiently develop your application upon.
31
- email: spam@codez.ch
31
+ email: pascal+github@codez.ch
32
32
  executables: []
33
33
  extensions: []
34
34
  extra_rdoc_files:
@@ -142,7 +142,7 @@ files:
142
142
  homepage: http://github.com/codez/dry_crud
143
143
  licenses: []
144
144
  metadata: {}
145
- post_install_message:
145
+ post_install_message:
146
146
  rdoc_options:
147
147
  - "--title"
148
148
  - '"Dry Crud"'
@@ -162,9 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  - !ruby/object:Gem::Version
163
163
  version: '0'
164
164
  requirements: []
165
- rubyforge_project:
166
- rubygems_version: 2.7.6
167
- signing_key:
165
+ rubygems_version: 3.3.26
166
+ signing_key:
168
167
  specification_version: 4
169
168
  summary: Generates DRY and specifically extendable CRUD controller, views and helpers
170
169
  for Rails applications.