dry_crud 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +1 -1
  3. data/README.rdoc +126 -87
  4. data/VERSION +1 -1
  5. data/lib/generators/dry_crud/dry_crud_generator.rb +42 -22
  6. data/lib/generators/dry_crud/templates/INSTALL +5 -5
  7. data/lib/generators/dry_crud/templates/app/assets/stylesheets/crud.scss +0 -20
  8. data/lib/generators/dry_crud/templates/app/assets/stylesheets/sample.scss +24 -4
  9. data/lib/generators/dry_crud/templates/app/controllers/crud/generic_model.rb +89 -0
  10. data/lib/generators/dry_crud/templates/app/controllers/crud/nestable.rb +70 -0
  11. data/lib/generators/dry_crud/templates/app/controllers/crud/rememberable.rb +64 -0
  12. data/lib/generators/dry_crud/templates/app/controllers/crud/render_callbacks.rb +46 -0
  13. data/lib/generators/dry_crud/templates/app/controllers/crud/responder.rb +31 -0
  14. data/lib/generators/dry_crud/templates/app/controllers/crud/searchable.rb +55 -0
  15. data/lib/generators/dry_crud/templates/app/controllers/crud/sortable.rb +63 -0
  16. data/lib/generators/dry_crud/templates/app/controllers/crud_controller.rb +66 -69
  17. data/lib/generators/dry_crud/templates/app/controllers/list_controller.rb +23 -326
  18. data/lib/generators/dry_crud/templates/app/helpers/actions_helper.rb +64 -0
  19. data/lib/generators/dry_crud/templates/app/helpers/crud/form_builder.rb +331 -0
  20. data/lib/generators/dry_crud/templates/app/helpers/crud/table_builder.rb +280 -0
  21. data/lib/generators/dry_crud/templates/app/helpers/form_helper.rb +52 -0
  22. data/lib/generators/dry_crud/templates/app/helpers/format_helper.rb +164 -0
  23. data/lib/generators/dry_crud/templates/app/helpers/i18n_helper.rb +85 -0
  24. data/lib/generators/dry_crud/templates/app/helpers/table_helper.rb +83 -0
  25. data/lib/generators/dry_crud/templates/app/helpers/utility_helper.rb +84 -0
  26. data/lib/generators/dry_crud/templates/app/views/crud/_actions_edit.html.erb +3 -3
  27. data/lib/generators/dry_crud/templates/app/views/crud/_actions_edit.html.haml +3 -3
  28. data/lib/generators/dry_crud/templates/app/views/crud/_actions_index.html.erb +1 -1
  29. data/lib/generators/dry_crud/templates/app/views/crud/_actions_index.html.haml +1 -1
  30. data/lib/generators/dry_crud/templates/app/views/crud/_actions_show.html.erb +3 -3
  31. data/lib/generators/dry_crud/templates/app/views/crud/_actions_show.html.haml +3 -3
  32. data/lib/generators/dry_crud/templates/app/views/crud/_attrs.html.erb +1 -1
  33. data/lib/generators/dry_crud/templates/app/views/crud/_attrs.html.haml +1 -1
  34. data/lib/generators/dry_crud/templates/app/views/crud/_form.html.erb +1 -1
  35. data/lib/generators/dry_crud/templates/app/views/crud/_form.html.haml +1 -1
  36. data/lib/generators/dry_crud/templates/app/views/crud/edit.html.erb +1 -1
  37. data/lib/generators/dry_crud/templates/app/views/crud/edit.html.haml +1 -1
  38. data/lib/generators/dry_crud/templates/app/views/crud/new.html.erb +2 -2
  39. data/lib/generators/dry_crud/templates/app/views/crud/new.html.haml +2 -2
  40. data/lib/generators/dry_crud/templates/app/views/crud/show.html.erb +1 -1
  41. data/lib/generators/dry_crud/templates/app/views/crud/show.html.haml +1 -1
  42. data/lib/generators/dry_crud/templates/app/views/layouts/_flash.html.haml +1 -1
  43. data/lib/generators/dry_crud/templates/app/views/layouts/_nav.html.erb +1 -1
  44. data/lib/generators/dry_crud/templates/app/views/layouts/_nav.html.haml +1 -1
  45. data/lib/generators/dry_crud/templates/app/views/layouts/crud.html.erb +15 -7
  46. data/lib/generators/dry_crud/templates/app/views/layouts/crud.html.haml +18 -8
  47. data/lib/generators/dry_crud/templates/app/views/list/_search.html.erb +3 -3
  48. data/lib/generators/dry_crud/templates/app/views/list/_search.html.haml +3 -3
  49. data/lib/generators/dry_crud/templates/app/views/list/index.html.erb +1 -1
  50. data/lib/generators/dry_crud/templates/app/views/list/index.html.haml +1 -1
  51. data/lib/generators/dry_crud/templates/app/views/shared/_error_messages.html.erb +1 -1
  52. data/lib/generators/dry_crud/templates/app/views/shared/_error_messages.html.haml +1 -1
  53. data/lib/generators/dry_crud/templates/app/views/shared/_labeled.html.erb +2 -4
  54. data/lib/generators/dry_crud/templates/app/views/shared/_labeled.html.haml +2 -3
  55. data/lib/generators/dry_crud/templates/config/initializers/field_error_proc.rb +5 -1
  56. data/lib/generators/dry_crud/templates/config/locales/crud.de.yml +64 -0
  57. data/lib/generators/dry_crud/templates/config/locales/{en_crud.yml → crud.en.yml} +2 -2
  58. data/lib/generators/dry_crud/templates/spec/controllers/crud_test_models_controller_spec.rb +241 -231
  59. data/lib/generators/dry_crud/templates/spec/helpers/crud/form_builder_spec.rb +226 -0
  60. data/lib/generators/dry_crud/templates/spec/helpers/{standard_table_builder_spec.rb → crud/table_builder_spec.rb} +36 -34
  61. data/lib/generators/dry_crud/templates/spec/helpers/form_helper_spec.rb +238 -0
  62. data/lib/generators/dry_crud/templates/spec/helpers/format_helper_spec.rb +244 -0
  63. data/lib/generators/dry_crud/templates/spec/helpers/i18n_helper_spec.rb +132 -0
  64. data/lib/generators/dry_crud/templates/spec/helpers/table_helper_spec.rb +265 -0
  65. data/lib/generators/dry_crud/templates/spec/helpers/utility_helper_spec.rb +74 -0
  66. data/lib/generators/dry_crud/templates/spec/support/crud_controller_examples.rb +185 -100
  67. data/lib/generators/dry_crud/templates/spec/support/crud_controller_test_helper.rb +58 -49
  68. data/lib/generators/dry_crud/templates/test/{functional → controllers}/crud_test_models_controller_test.rb +112 -91
  69. data/lib/generators/dry_crud/templates/test/{unit/helpers/standard_form_builder_test.rb → helpers/crud/form_builder_test.rb} +79 -62
  70. data/lib/generators/dry_crud/templates/test/{unit/helpers/standard_table_builder_test.rb → helpers/crud/table_builder_test.rb} +31 -28
  71. data/lib/generators/dry_crud/templates/test/helpers/custom_assertions_test.rb +85 -0
  72. data/lib/generators/dry_crud/templates/test/helpers/form_helper_test.rb +129 -0
  73. data/lib/generators/dry_crud/templates/test/helpers/format_helper_test.rb +163 -0
  74. data/lib/generators/dry_crud/templates/test/helpers/i18n_helper_test.rb +79 -0
  75. data/lib/generators/dry_crud/templates/test/helpers/table_helper_test.rb +217 -0
  76. data/lib/generators/dry_crud/templates/test/helpers/utility_helper_test.rb +63 -0
  77. data/lib/generators/dry_crud/templates/test/{functional → support}/crud_controller_test_helper.rb +70 -59
  78. data/lib/generators/dry_crud/templates/test/{crud_test_model.rb → support/crud_test_model.rb} +107 -75
  79. data/lib/generators/dry_crud/templates/test/support/custom_assertions.rb +83 -0
  80. metadata +83 -146
  81. data/Rakefile +0 -211
  82. data/lib/generators/dry_crud/templates/app/helpers/crud_helper.rb +0 -168
  83. data/lib/generators/dry_crud/templates/app/helpers/list_helper.rb +0 -27
  84. data/lib/generators/dry_crud/templates/app/helpers/standard_form_builder.rb +0 -261
  85. data/lib/generators/dry_crud/templates/app/helpers/standard_helper.rb +0 -304
  86. data/lib/generators/dry_crud/templates/app/helpers/standard_table_builder.rb +0 -178
  87. data/lib/generators/dry_crud/templates/spec/helpers/crud_helper_spec.rb +0 -146
  88. data/lib/generators/dry_crud/templates/spec/helpers/list_helper_spec.rb +0 -154
  89. data/lib/generators/dry_crud/templates/spec/helpers/standard_form_builder_spec.rb +0 -215
  90. data/lib/generators/dry_crud/templates/spec/helpers/standard_helper_spec.rb +0 -387
  91. data/lib/generators/dry_crud/templates/test/custom_assertions.rb +0 -78
  92. data/lib/generators/dry_crud/templates/test/unit/custom_assertions_test.rb +0 -117
  93. data/lib/generators/dry_crud/templates/test/unit/helpers/crud_helper_test.rb +0 -111
  94. data/lib/generators/dry_crud/templates/test/unit/helpers/list_helper_test.rb +0 -123
  95. data/lib/generators/dry_crud/templates/test/unit/helpers/standard_helper_test.rb +0 -281
  96. data/test/templates/Gemfile +0 -46
  97. data/test/templates/app/controllers/admin/cities_controller.rb +0 -7
  98. data/test/templates/app/controllers/admin/countries_controller.rb +0 -13
  99. data/test/templates/app/controllers/ajax_controller.rb +0 -9
  100. data/test/templates/app/controllers/people_controller.rb +0 -13
  101. data/test/templates/app/controllers/vips_controller.rb +0 -19
  102. data/test/templates/app/helpers/cities_helper.rb +0 -9
  103. data/test/templates/app/helpers/people_helper.rb +0 -8
  104. data/test/templates/app/models/city.rb +0 -28
  105. data/test/templates/app/models/country.rb +0 -16
  106. data/test/templates/app/models/person.rb +0 -12
  107. data/test/templates/app/views/admin/cities/_actions_index.html.erb +0 -2
  108. data/test/templates/app/views/admin/cities/_actions_index.html.haml +0 -2
  109. data/test/templates/app/views/admin/cities/_attrs.html.erb +0 -1
  110. data/test/templates/app/views/admin/cities/_attrs.html.haml +0 -1
  111. data/test/templates/app/views/admin/cities/_form.html.erb +0 -7
  112. data/test/templates/app/views/admin/cities/_form.html.haml +0 -5
  113. data/test/templates/app/views/admin/cities/_hello.html.erb +0 -1
  114. data/test/templates/app/views/admin/cities/_hello.html.haml +0 -1
  115. data/test/templates/app/views/admin/cities/_list.html.erb +0 -3
  116. data/test/templates/app/views/admin/cities/_list.html.haml +0 -3
  117. data/test/templates/app/views/admin/countries/_list.html.erb +0 -4
  118. data/test/templates/app/views/admin/countries/_list.html.haml +0 -3
  119. data/test/templates/app/views/ajax/_actions_index.html.erb +0 -8
  120. data/test/templates/app/views/ajax/_actions_index.html.haml +0 -8
  121. data/test/templates/app/views/ajax/_actions_show.html.erb +0 -4
  122. data/test/templates/app/views/ajax/_actions_show.html.haml +0 -4
  123. data/test/templates/app/views/ajax/_form.html.erb +0 -2
  124. data/test/templates/app/views/ajax/_form.html.haml +0 -2
  125. data/test/templates/app/views/ajax/_hello.html.erb +0 -1
  126. data/test/templates/app/views/ajax/_hello.html.haml +0 -1
  127. data/test/templates/app/views/ajax/ajax.js.erb +0 -1
  128. data/test/templates/app/views/ajax/ajax.js.haml +0 -1
  129. data/test/templates/app/views/ajax/edit.js.erb +0 -1
  130. data/test/templates/app/views/ajax/edit.js.haml +0 -1
  131. data/test/templates/app/views/ajax/show.js.erb +0 -1
  132. data/test/templates/app/views/ajax/show.js.haml +0 -1
  133. data/test/templates/app/views/ajax/update.js.erb +0 -5
  134. data/test/templates/app/views/ajax/update.js.haml +0 -5
  135. data/test/templates/app/views/layouts/_nav.html.erb +0 -6
  136. data/test/templates/app/views/layouts/_nav.html.haml +0 -5
  137. data/test/templates/app/views/layouts/bootstrap.html.erb +0 -68
  138. data/test/templates/app/views/layouts/bootstrap.html.haml +0 -49
  139. data/test/templates/app/views/people/_attrs.html.erb +0 -5
  140. data/test/templates/app/views/people/_attrs.html.haml +0 -4
  141. data/test/templates/app/views/people/_list.html.erb +0 -1
  142. data/test/templates/app/views/people/_list.html.haml +0 -1
  143. data/test/templates/config/database.yml +0 -21
  144. data/test/templates/config/locales/en_cities.yml +0 -56
  145. data/test/templates/config/routes.rb +0 -32
  146. data/test/templates/db/migrate/20100511174904_create_people_and_cities.rb +0 -26
  147. data/test/templates/db/seeds.rb +0 -74
  148. data/test/templates/spec/controllers/admin/cities_controller_spec.rb +0 -74
  149. data/test/templates/spec/controllers/admin/countries_controller_spec.rb +0 -56
  150. data/test/templates/spec/controllers/people_controller_spec.rb +0 -80
  151. data/test/templates/spec/routing/cities_routing_spec.rb +0 -11
  152. data/test/templates/spec/routing/countries_routing_spec.rb +0 -11
  153. data/test/templates/test/fixtures/cities.yml +0 -11
  154. data/test/templates/test/fixtures/countries.yml +0 -11
  155. data/test/templates/test/fixtures/people.yml +0 -14
  156. data/test/templates/test/functional/admin/cities_controller_test.rb +0 -59
  157. data/test/templates/test/functional/admin/countries_controller_test.rb +0 -42
  158. data/test/templates/test/functional/people_controller_test.rb +0 -68
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Admin::CitiesController do
4
- it "should route index" do
5
- { :get => 'admin/countries/1/cities' }.should route_to({:controller => 'admin/cities', :action => 'index', :country_id => '1'})
6
- end
7
-
8
- it "should route show" do
9
- { :get => 'admin/countries/2/cities/1' }.should route_to({:controller => 'admin/cities', :action => 'show', :country_id => '2', :id => '1'})
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Admin::CountriesController do
4
- it "should route index" do
5
- { :get => 'admin/countries' }.should route_to({:controller => 'admin/countries', :action => 'index'})
6
- end
7
-
8
- it "should route show" do
9
- { :get => 'admin/countries/1' }.should route_to({:controller => 'admin/countries', :action => 'show', :id => '1'})
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- bern:
2
- name: Bern
3
- country: ch
4
-
5
- ny:
6
- name: New York
7
- country: usa
8
-
9
- rj:
10
- name: Rio de Janeiro
11
- country: br
@@ -1,11 +0,0 @@
1
- ch:
2
- name: Switzerland
3
- code: CH
4
-
5
- usa:
6
- name: USA
7
- code: USA
8
-
9
- br:
10
- name: Brazil
11
- code: BR
@@ -1,14 +0,0 @@
1
- john:
2
- name: John Doe
3
- children: 0
4
- income: 300.20
5
- birthdate: 1972-04-04
6
- city: ny
7
- remarks: Bla Bla\nBla Bla
8
-
9
- jack:
10
- name: Jack Black
11
- children: 2
12
- income: 123.4567
13
- birthdate: 1980-09-12
14
- city: bern
@@ -1,59 +0,0 @@
1
- require 'test_helper'
2
- require File.join('functional', 'crud_controller_test_helper')
3
-
4
- class Admin::CitiesControllerTest < ActionController::TestCase
5
-
6
- include CrudControllerTestHelper
7
-
8
- def test_setup
9
- assert_equal 3, City.count
10
- assert_recognizes({:controller => 'admin/cities', :action => 'index', :country_id => '1'}, 'admin/countries/1/cities')
11
- assert_recognizes({:controller => 'admin/cities', :action => 'show', :country_id => '2', :id => '1'}, 'admin/countries/2/cities/1')
12
- end
13
-
14
- def test_index
15
- super
16
- assert_equal test_entry.country.cities.order('countries.code, cities.name').to_a, entries.to_a
17
-
18
- assert_equal @controller.send(:entries), assigns(:cities)
19
- assert_equal [:admin, test_entry.country], @controller.send(:parents)
20
- assert_equal test_entry.country, assigns(:country)
21
- assert_equal test_entry.country, @controller.send(:parent)
22
- assert_equal test_entry.country.cities.to_a, @controller.send(:model_scope).to_a
23
- assert_equal [:admin, test_entry.country, 2], @controller.send(:path_args, 2)
24
- end
25
-
26
- def test_show
27
- super
28
- assert_equal @controller.send(:entry), assigns(:city)
29
- assert_equal [:admin, test_entry.country], @controller.send(:parents)
30
- assert_equal test_entry.country, assigns(:country)
31
- assert_equal test_entry.country, @controller.send(:parent)
32
- end
33
- #
34
- def test_create
35
- super
36
- assert_equal test_entry.country, entry.country
37
- end
38
-
39
- def test_destroy_with_inhabitants
40
- ny = cities(:ny)
41
- assert_no_difference('City.count') do
42
- @request.env["HTTP_REFERER"] = admin_country_city_url(ny.country, ny)
43
- delete :destroy, :country_id => ny.country_id, :id => ny.id
44
- end
45
- assert_redirected_to [:admin, ny.country, ny]
46
- assert_present flash[:alert]
47
- end
48
-
49
- private
50
-
51
- def test_entry
52
- cities(:rj)
53
- end
54
-
55
- def test_entry_attrs
56
- {:name => 'Rejkiavik'}
57
- end
58
-
59
- end
@@ -1,42 +0,0 @@
1
- require 'test_helper'
2
- require File.join('functional', 'crud_controller_test_helper')
3
-
4
- class Admin::CountriesControllerTest < ActionController::TestCase
5
-
6
- include CrudControllerTestHelper
7
-
8
- def test_setup
9
- assert_equal 3, Country.count
10
- assert_recognizes({:controller => 'admin/countries', :action => 'index'}, 'admin/countries')
11
- assert_recognizes({:controller => 'admin/countries', :action => 'show', :id => '1'}, 'admin/countries/1')
12
- end
13
-
14
- def test_index
15
- super
16
- assert_equal Country.order('name').all, entries
17
- assert_equal [:admin], @controller.send(:parents)
18
- assert_nil @controller.send(:parent)
19
- assert_equal Country.scoped, @controller.send(:model_scope)
20
- assert_equal [:admin,2], @controller.send(:path_args, 2)
21
- end
22
-
23
- def test_show
24
- get :show, test_params(:id => test_entry.id)
25
- assert_redirected_to_index
26
- end
27
-
28
- private
29
-
30
- def assert_redirected_to_show2(entry)
31
- assert_redirected_to_index
32
- end
33
-
34
- def test_entry
35
- countries(:usa)
36
- end
37
-
38
- def test_entry_attrs
39
- {:name => 'United States of America', :code => 'US'}
40
- end
41
-
42
- end
@@ -1,68 +0,0 @@
1
- require 'test_helper'
2
- require File.join('functional', 'crud_controller_test_helper')
3
-
4
- class PeopleControllerTest < ActionController::TestCase
5
-
6
- include CrudControllerTestHelper
7
-
8
- def test_setup
9
- assert_equal 2, Person.count
10
- assert_recognizes({:controller => 'people', :action => 'index'}, '/people')
11
- assert_recognizes({:controller => 'people', :action => 'show', :id => '1'}, '/people/1')
12
- end
13
-
14
- def test_index
15
- super
16
- assert_equal 2, entries.size
17
- assert_equal Person.includes(:city => :country).order('people.name, countries.code, cities.name').all, entries
18
-
19
- assert_equal [], @controller.send(:parents)
20
- assert_nil @controller.send(:parent)
21
- assert_equal Person.scoped, @controller.send(:model_scope)
22
- assert_equal [2], @controller.send(:path_args, 2)
23
- end
24
-
25
- def test_index_search
26
- super
27
- assert_equal 1, entries.size
28
- end
29
-
30
- def test_show_js
31
- get :show, :id => test_entry.id, :format => :js
32
- assert_response :success
33
- assert_template 'show'
34
- assert_match /\$\('#content'\)/, response.body
35
- end
36
-
37
- def test_edit_js
38
- get :edit, :id => test_entry.id, :format => :js
39
- assert_response :success
40
- assert_template 'edit'
41
- assert_match /\$\('#content'\)/, response.body
42
- end
43
-
44
- def test_update_js
45
- put :update, :id => test_entry.id, :format => :js, :person => {:name => 'New Name'}
46
- assert_response :success
47
- assert_template 'update'
48
- assert_match /\$\('#content'\)/, response.body
49
- end
50
-
51
- def test_update_fail_js
52
- put :update, :id => test_entry.id, :format => :js, :person => {:name => ' '}
53
- assert_response :success
54
- assert_template 'update'
55
- assert_match /alert/, response.body
56
- end
57
-
58
- private
59
-
60
- def test_entry
61
- people(:john)
62
- end
63
-
64
- def test_entry_attrs
65
- {:name => 'Fischers Fritz', :children => 2, :income => 120, :city_id => cities(:rj).id}
66
- end
67
-
68
- end