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.
- checksums.yaml +15 -0
- data/MIT-LICENSE +1 -1
- data/README.rdoc +126 -87
- data/VERSION +1 -1
- data/lib/generators/dry_crud/dry_crud_generator.rb +42 -22
- data/lib/generators/dry_crud/templates/INSTALL +5 -5
- data/lib/generators/dry_crud/templates/app/assets/stylesheets/crud.scss +0 -20
- data/lib/generators/dry_crud/templates/app/assets/stylesheets/sample.scss +24 -4
- data/lib/generators/dry_crud/templates/app/controllers/crud/generic_model.rb +89 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/nestable.rb +70 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/rememberable.rb +64 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/render_callbacks.rb +46 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/responder.rb +31 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/searchable.rb +55 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud/sortable.rb +63 -0
- data/lib/generators/dry_crud/templates/app/controllers/crud_controller.rb +66 -69
- data/lib/generators/dry_crud/templates/app/controllers/list_controller.rb +23 -326
- data/lib/generators/dry_crud/templates/app/helpers/actions_helper.rb +64 -0
- data/lib/generators/dry_crud/templates/app/helpers/crud/form_builder.rb +331 -0
- data/lib/generators/dry_crud/templates/app/helpers/crud/table_builder.rb +280 -0
- data/lib/generators/dry_crud/templates/app/helpers/form_helper.rb +52 -0
- data/lib/generators/dry_crud/templates/app/helpers/format_helper.rb +164 -0
- data/lib/generators/dry_crud/templates/app/helpers/i18n_helper.rb +85 -0
- data/lib/generators/dry_crud/templates/app/helpers/table_helper.rb +83 -0
- data/lib/generators/dry_crud/templates/app/helpers/utility_helper.rb +84 -0
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_edit.html.erb +3 -3
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_edit.html.haml +3 -3
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_index.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_index.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_show.html.erb +3 -3
- data/lib/generators/dry_crud/templates/app/views/crud/_actions_show.html.haml +3 -3
- data/lib/generators/dry_crud/templates/app/views/crud/_attrs.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/_attrs.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/_form.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/_form.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/edit.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/edit.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/new.html.erb +2 -2
- data/lib/generators/dry_crud/templates/app/views/crud/new.html.haml +2 -2
- data/lib/generators/dry_crud/templates/app/views/crud/show.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/crud/show.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/layouts/_flash.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/layouts/_nav.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/layouts/_nav.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/layouts/crud.html.erb +15 -7
- data/lib/generators/dry_crud/templates/app/views/layouts/crud.html.haml +18 -8
- data/lib/generators/dry_crud/templates/app/views/list/_search.html.erb +3 -3
- data/lib/generators/dry_crud/templates/app/views/list/_search.html.haml +3 -3
- data/lib/generators/dry_crud/templates/app/views/list/index.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/list/index.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/shared/_error_messages.html.erb +1 -1
- data/lib/generators/dry_crud/templates/app/views/shared/_error_messages.html.haml +1 -1
- data/lib/generators/dry_crud/templates/app/views/shared/_labeled.html.erb +2 -4
- data/lib/generators/dry_crud/templates/app/views/shared/_labeled.html.haml +2 -3
- data/lib/generators/dry_crud/templates/config/initializers/field_error_proc.rb +5 -1
- data/lib/generators/dry_crud/templates/config/locales/crud.de.yml +64 -0
- data/lib/generators/dry_crud/templates/config/locales/{en_crud.yml → crud.en.yml} +2 -2
- data/lib/generators/dry_crud/templates/spec/controllers/crud_test_models_controller_spec.rb +241 -231
- data/lib/generators/dry_crud/templates/spec/helpers/crud/form_builder_spec.rb +226 -0
- data/lib/generators/dry_crud/templates/spec/helpers/{standard_table_builder_spec.rb → crud/table_builder_spec.rb} +36 -34
- data/lib/generators/dry_crud/templates/spec/helpers/form_helper_spec.rb +238 -0
- data/lib/generators/dry_crud/templates/spec/helpers/format_helper_spec.rb +244 -0
- data/lib/generators/dry_crud/templates/spec/helpers/i18n_helper_spec.rb +132 -0
- data/lib/generators/dry_crud/templates/spec/helpers/table_helper_spec.rb +265 -0
- data/lib/generators/dry_crud/templates/spec/helpers/utility_helper_spec.rb +74 -0
- data/lib/generators/dry_crud/templates/spec/support/crud_controller_examples.rb +185 -100
- data/lib/generators/dry_crud/templates/spec/support/crud_controller_test_helper.rb +58 -49
- data/lib/generators/dry_crud/templates/test/{functional → controllers}/crud_test_models_controller_test.rb +112 -91
- data/lib/generators/dry_crud/templates/test/{unit/helpers/standard_form_builder_test.rb → helpers/crud/form_builder_test.rb} +79 -62
- data/lib/generators/dry_crud/templates/test/{unit/helpers/standard_table_builder_test.rb → helpers/crud/table_builder_test.rb} +31 -28
- data/lib/generators/dry_crud/templates/test/helpers/custom_assertions_test.rb +85 -0
- data/lib/generators/dry_crud/templates/test/helpers/form_helper_test.rb +129 -0
- data/lib/generators/dry_crud/templates/test/helpers/format_helper_test.rb +163 -0
- data/lib/generators/dry_crud/templates/test/helpers/i18n_helper_test.rb +79 -0
- data/lib/generators/dry_crud/templates/test/helpers/table_helper_test.rb +217 -0
- data/lib/generators/dry_crud/templates/test/helpers/utility_helper_test.rb +63 -0
- data/lib/generators/dry_crud/templates/test/{functional → support}/crud_controller_test_helper.rb +70 -59
- data/lib/generators/dry_crud/templates/test/{crud_test_model.rb → support/crud_test_model.rb} +107 -75
- data/lib/generators/dry_crud/templates/test/support/custom_assertions.rb +83 -0
- metadata +83 -146
- data/Rakefile +0 -211
- data/lib/generators/dry_crud/templates/app/helpers/crud_helper.rb +0 -168
- data/lib/generators/dry_crud/templates/app/helpers/list_helper.rb +0 -27
- data/lib/generators/dry_crud/templates/app/helpers/standard_form_builder.rb +0 -261
- data/lib/generators/dry_crud/templates/app/helpers/standard_helper.rb +0 -304
- data/lib/generators/dry_crud/templates/app/helpers/standard_table_builder.rb +0 -178
- data/lib/generators/dry_crud/templates/spec/helpers/crud_helper_spec.rb +0 -146
- data/lib/generators/dry_crud/templates/spec/helpers/list_helper_spec.rb +0 -154
- data/lib/generators/dry_crud/templates/spec/helpers/standard_form_builder_spec.rb +0 -215
- data/lib/generators/dry_crud/templates/spec/helpers/standard_helper_spec.rb +0 -387
- data/lib/generators/dry_crud/templates/test/custom_assertions.rb +0 -78
- data/lib/generators/dry_crud/templates/test/unit/custom_assertions_test.rb +0 -117
- data/lib/generators/dry_crud/templates/test/unit/helpers/crud_helper_test.rb +0 -111
- data/lib/generators/dry_crud/templates/test/unit/helpers/list_helper_test.rb +0 -123
- data/lib/generators/dry_crud/templates/test/unit/helpers/standard_helper_test.rb +0 -281
- data/test/templates/Gemfile +0 -46
- data/test/templates/app/controllers/admin/cities_controller.rb +0 -7
- data/test/templates/app/controllers/admin/countries_controller.rb +0 -13
- data/test/templates/app/controllers/ajax_controller.rb +0 -9
- data/test/templates/app/controllers/people_controller.rb +0 -13
- data/test/templates/app/controllers/vips_controller.rb +0 -19
- data/test/templates/app/helpers/cities_helper.rb +0 -9
- data/test/templates/app/helpers/people_helper.rb +0 -8
- data/test/templates/app/models/city.rb +0 -28
- data/test/templates/app/models/country.rb +0 -16
- data/test/templates/app/models/person.rb +0 -12
- data/test/templates/app/views/admin/cities/_actions_index.html.erb +0 -2
- data/test/templates/app/views/admin/cities/_actions_index.html.haml +0 -2
- data/test/templates/app/views/admin/cities/_attrs.html.erb +0 -1
- data/test/templates/app/views/admin/cities/_attrs.html.haml +0 -1
- data/test/templates/app/views/admin/cities/_form.html.erb +0 -7
- data/test/templates/app/views/admin/cities/_form.html.haml +0 -5
- data/test/templates/app/views/admin/cities/_hello.html.erb +0 -1
- data/test/templates/app/views/admin/cities/_hello.html.haml +0 -1
- data/test/templates/app/views/admin/cities/_list.html.erb +0 -3
- data/test/templates/app/views/admin/cities/_list.html.haml +0 -3
- data/test/templates/app/views/admin/countries/_list.html.erb +0 -4
- data/test/templates/app/views/admin/countries/_list.html.haml +0 -3
- data/test/templates/app/views/ajax/_actions_index.html.erb +0 -8
- data/test/templates/app/views/ajax/_actions_index.html.haml +0 -8
- data/test/templates/app/views/ajax/_actions_show.html.erb +0 -4
- data/test/templates/app/views/ajax/_actions_show.html.haml +0 -4
- data/test/templates/app/views/ajax/_form.html.erb +0 -2
- data/test/templates/app/views/ajax/_form.html.haml +0 -2
- data/test/templates/app/views/ajax/_hello.html.erb +0 -1
- data/test/templates/app/views/ajax/_hello.html.haml +0 -1
- data/test/templates/app/views/ajax/ajax.js.erb +0 -1
- data/test/templates/app/views/ajax/ajax.js.haml +0 -1
- data/test/templates/app/views/ajax/edit.js.erb +0 -1
- data/test/templates/app/views/ajax/edit.js.haml +0 -1
- data/test/templates/app/views/ajax/show.js.erb +0 -1
- data/test/templates/app/views/ajax/show.js.haml +0 -1
- data/test/templates/app/views/ajax/update.js.erb +0 -5
- data/test/templates/app/views/ajax/update.js.haml +0 -5
- data/test/templates/app/views/layouts/_nav.html.erb +0 -6
- data/test/templates/app/views/layouts/_nav.html.haml +0 -5
- data/test/templates/app/views/layouts/bootstrap.html.erb +0 -68
- data/test/templates/app/views/layouts/bootstrap.html.haml +0 -49
- data/test/templates/app/views/people/_attrs.html.erb +0 -5
- data/test/templates/app/views/people/_attrs.html.haml +0 -4
- data/test/templates/app/views/people/_list.html.erb +0 -1
- data/test/templates/app/views/people/_list.html.haml +0 -1
- data/test/templates/config/database.yml +0 -21
- data/test/templates/config/locales/en_cities.yml +0 -56
- data/test/templates/config/routes.rb +0 -32
- data/test/templates/db/migrate/20100511174904_create_people_and_cities.rb +0 -26
- data/test/templates/db/seeds.rb +0 -74
- data/test/templates/spec/controllers/admin/cities_controller_spec.rb +0 -74
- data/test/templates/spec/controllers/admin/countries_controller_spec.rb +0 -56
- data/test/templates/spec/controllers/people_controller_spec.rb +0 -80
- data/test/templates/spec/routing/cities_routing_spec.rb +0 -11
- data/test/templates/spec/routing/countries_routing_spec.rb +0 -11
- data/test/templates/test/fixtures/cities.yml +0 -11
- data/test/templates/test/fixtures/countries.yml +0 -11
- data/test/templates/test/fixtures/people.yml +0 -14
- data/test/templates/test/functional/admin/cities_controller_test.rb +0 -59
- data/test/templates/test/functional/admin/countries_controller_test.rb +0 -42
- 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,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
|