dynamic_controller 0.0.1 → 0.0.2

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.
Files changed (91) hide show
  1. data/.gitignore +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +39 -2
  4. data/Rakefile +1 -1
  5. data/dynamic_controller.gemspec +26 -26
  6. data/lib/dynamic_controller/class_methods.rb +48 -0
  7. data/lib/dynamic_controller/helper_methods.rb +59 -0
  8. data/lib/dynamic_controller/instance_methods.rb +127 -0
  9. data/lib/dynamic_controller/resource.rb +21 -0
  10. data/lib/dynamic_controller/responder.rb +71 -0
  11. data/lib/dynamic_controller/version.rb +3 -3
  12. data/lib/dynamic_controller.rb +12 -180
  13. data/spec/controller_factory.rb +15 -0
  14. data/spec/controllers/crud_actions_json_spec.rb +3 -3
  15. data/spec/controllers/nested_crud_actions_html_spec.rb +9 -8
  16. data/spec/controllers/nested_crud_actions_json_spec.rb +11 -11
  17. data/spec/controllers/redefined_responders_html_spec.rb +112 -0
  18. data/spec/controllers/redefined_responders_json_spec.rb +95 -0
  19. data/spec/controllers/two_level_nested_crud_actions_html_spec.rb +134 -0
  20. data/spec/controllers/two_level_nested_crud_actions_json_spec.rb +98 -0
  21. data/spec/dummy/.gitignore +15 -15
  22. data/spec/dummy/Gemfile +12 -12
  23. data/spec/dummy/README.rdoc +261 -261
  24. data/spec/dummy/Rakefile +7 -7
  25. data/spec/dummy/app/assets/javascripts/application.js +15 -15
  26. data/spec/dummy/app/assets/stylesheets/application.css +13 -13
  27. data/spec/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -69
  28. data/spec/dummy/app/controllers/application_controller.rb +3 -3
  29. data/spec/dummy/app/controllers/cities_controller.rb +95 -94
  30. data/spec/dummy/app/controllers/countries_controller.rb +86 -86
  31. data/spec/dummy/app/controllers/languages_controller.rb +95 -0
  32. data/spec/dummy/app/controllers/streets_controller.rb +97 -0
  33. data/spec/dummy/app/helpers/application_helper.rb +2 -2
  34. data/spec/dummy/app/models/city.rb +6 -5
  35. data/spec/dummy/app/models/country.rb +5 -5
  36. data/spec/dummy/app/models/language.rb +4 -0
  37. data/spec/dummy/app/models/street.rb +5 -0
  38. data/spec/dummy/app/views/cities/_form.html.erb +25 -25
  39. data/spec/dummy/app/views/cities/edit.html.erb +6 -6
  40. data/spec/dummy/app/views/cities/index.html.erb +29 -25
  41. data/spec/dummy/app/views/cities/new.html.erb +5 -5
  42. data/spec/dummy/app/views/cities/show.html.erb +15 -15
  43. data/spec/dummy/app/views/countries/_form.html.erb +21 -21
  44. data/spec/dummy/app/views/countries/edit.html.erb +6 -6
  45. data/spec/dummy/app/views/countries/index.html.erb +25 -23
  46. data/spec/dummy/app/views/countries/new.html.erb +5 -5
  47. data/spec/dummy/app/views/countries/show.html.erb +10 -10
  48. data/spec/dummy/app/views/languages/_form.html.erb +21 -0
  49. data/spec/dummy/app/views/languages/edit.html.erb +6 -0
  50. data/spec/dummy/app/views/languages/index.html.erb +23 -0
  51. data/spec/dummy/app/views/languages/new.html.erb +5 -0
  52. data/spec/dummy/app/views/languages/show.html.erb +10 -0
  53. data/spec/dummy/app/views/layouts/application.html.erb +14 -14
  54. data/spec/dummy/app/views/streets/_form.html.erb +25 -0
  55. data/spec/dummy/app/views/streets/edit.html.erb +6 -0
  56. data/spec/dummy/app/views/streets/index.html.erb +27 -0
  57. data/spec/dummy/app/views/streets/new.html.erb +5 -0
  58. data/spec/dummy/app/views/streets/show.html.erb +15 -0
  59. data/spec/dummy/config/application.rb +62 -62
  60. data/spec/dummy/config/boot.rb +6 -6
  61. data/spec/dummy/config/database.yml +25 -25
  62. data/spec/dummy/config/environment.rb +5 -5
  63. data/spec/dummy/config/environments/development.rb +37 -37
  64. data/spec/dummy/config/environments/production.rb +67 -67
  65. data/spec/dummy/config/environments/test.rb +37 -37
  66. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -7
  67. data/spec/dummy/config/initializers/inflections.rb +15 -15
  68. data/spec/dummy/config/initializers/mime_types.rb +5 -5
  69. data/spec/dummy/config/initializers/secret_token.rb +7 -7
  70. data/spec/dummy/config/initializers/session_store.rb +8 -8
  71. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -14
  72. data/spec/dummy/config/locales/en.yml +5 -5
  73. data/spec/dummy/config/routes.rb +8 -5
  74. data/spec/dummy/config.ru +4 -4
  75. data/spec/dummy/db/migrate/20120907174827_create_countries.rb +9 -9
  76. data/spec/dummy/db/migrate/20120907230842_create_cities.rb +11 -11
  77. data/spec/dummy/db/migrate/20120922010743_create_languages.rb +9 -0
  78. data/spec/dummy/db/migrate/20120929185302_create_streets.rb +11 -0
  79. data/spec/dummy/db/schema.rb +16 -1
  80. data/spec/dummy/db/seeds.rb +7 -7
  81. data/spec/dummy/doc/README_FOR_APP +2 -2
  82. data/spec/dummy/public/404.html +26 -26
  83. data/spec/dummy/public/422.html +26 -26
  84. data/spec/dummy/public/500.html +25 -25
  85. data/spec/dummy/public/index.html +241 -241
  86. data/spec/dummy/public/robots.txt +5 -5
  87. data/spec/dummy/script/rails +6 -6
  88. data/spec/factories.rb +9 -0
  89. data/spec/has_crud_actions_options_spec.rb +49 -0
  90. data/spec/spec_helper.rb +1 -0
  91. metadata +43 -16
@@ -1,69 +1,69 @@
1
- body {
2
- background-color: #fff;
3
- color: #333;
4
- font-family: verdana, arial, helvetica, sans-serif;
5
- font-size: 13px;
6
- line-height: 18px;
7
- }
8
-
9
- p, ol, ul, td {
10
- font-family: verdana, arial, helvetica, sans-serif;
11
- font-size: 13px;
12
- line-height: 18px;
13
- }
14
-
15
- pre {
16
- background-color: #eee;
17
- padding: 10px;
18
- font-size: 11px;
19
- }
20
-
21
- a {
22
- color: #000;
23
- &:visited {
24
- color: #666;
25
- }
26
- &:hover {
27
- color: #fff;
28
- background-color: #000;
29
- }
30
- }
31
-
32
- div {
33
- &.field, &.actions {
34
- margin-bottom: 10px;
35
- }
36
- }
37
-
38
- #notice {
39
- color: green;
40
- }
41
-
42
- .field_with_errors {
43
- padding: 2px;
44
- background-color: red;
45
- display: table;
46
- }
47
-
48
- #error_explanation {
49
- width: 450px;
50
- border: 2px solid red;
51
- padding: 7px;
52
- padding-bottom: 0;
53
- margin-bottom: 20px;
54
- background-color: #f0f0f0;
55
- h2 {
56
- text-align: left;
57
- font-weight: bold;
58
- padding: 5px 5px 5px 15px;
59
- font-size: 12px;
60
- margin: -7px;
61
- margin-bottom: 0px;
62
- background-color: #c00;
63
- color: #fff;
64
- }
65
- ul li {
66
- font-size: 12px;
67
- list-style: square;
68
- }
69
- }
1
+ body {
2
+ background-color: #fff;
3
+ color: #333;
4
+ font-family: verdana, arial, helvetica, sans-serif;
5
+ font-size: 13px;
6
+ line-height: 18px;
7
+ }
8
+
9
+ p, ol, ul, td {
10
+ font-family: verdana, arial, helvetica, sans-serif;
11
+ font-size: 13px;
12
+ line-height: 18px;
13
+ }
14
+
15
+ pre {
16
+ background-color: #eee;
17
+ padding: 10px;
18
+ font-size: 11px;
19
+ }
20
+
21
+ a {
22
+ color: #000;
23
+ &:visited {
24
+ color: #666;
25
+ }
26
+ &:hover {
27
+ color: #fff;
28
+ background-color: #000;
29
+ }
30
+ }
31
+
32
+ div {
33
+ &.field, &.actions {
34
+ margin-bottom: 10px;
35
+ }
36
+ }
37
+
38
+ #notice {
39
+ color: green;
40
+ }
41
+
42
+ .field_with_errors {
43
+ padding: 2px;
44
+ background-color: red;
45
+ display: table;
46
+ }
47
+
48
+ #error_explanation {
49
+ width: 450px;
50
+ border: 2px solid red;
51
+ padding: 7px;
52
+ padding-bottom: 0;
53
+ margin-bottom: 20px;
54
+ background-color: #f0f0f0;
55
+ h2 {
56
+ text-align: left;
57
+ font-weight: bold;
58
+ padding: 5px 5px 5px 15px;
59
+ font-size: 12px;
60
+ margin: -7px;
61
+ margin-bottom: 0px;
62
+ background-color: #c00;
63
+ color: #fff;
64
+ }
65
+ ul li {
66
+ font-size: 12px;
67
+ list-style: square;
68
+ }
69
+ }
@@ -1,3 +1,3 @@
1
- class ApplicationController < ActionController::Base
2
- protect_from_forgery
3
- end
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -1,94 +1,95 @@
1
- class CitiesController < ApplicationController
2
- has_crud_actions nested_of: Country
3
- =begin
4
- before_filter :load_country
5
-
6
- # GET /cities
7
- # GET /cities.json
8
- def index
9
- @cities = City.all
10
-
11
- respond_to do |format|
12
- format.html # index.html.erb
13
- format.json { render json: @cities }
14
- end
15
- end
16
-
17
- # GET /cities/1
18
- # GET /cities/1.json
19
- def show
20
- @city = City.find(params[:id])
21
-
22
- respond_to do |format|
23
- format.html # show.html.erb
24
- format.json { render json: @city }
25
- end
26
- end
27
-
28
- # GET /cities/new
29
- # GET /cities/new.json
30
- def new
31
- @city = City.new
32
-
33
- respond_to do |format|
34
- format.html # new.html.erb
35
- format.json { render json: @city }
36
- end
37
- end
38
-
39
- # GET /cities/1/edit
40
- def edit
41
- @city = City.find(params[:id])
42
- end
43
-
44
- # POST /cities
45
- # POST /cities.json
46
- def create
47
- @city = City.new(params[:city])
48
-
49
- respond_to do |format|
50
- if @city.save
51
- format.html { redirect_to [@country, @city], notice: 'City was successfully created.' }
52
- format.json { render json: @city, status: :created }
53
- else
54
- format.html { render action: "new" }
55
- format.json { render json: @city.errors, status: :unprocessable_entity }
56
- end
57
- end
58
- end
59
-
60
- # PUT /cities/1
61
- # PUT /cities/1.json
62
- def update
63
- @city = City.find(params[:id])
64
-
65
- respond_to do |format|
66
- if @city.update_attributes(params[:city])
67
- format.html { redirect_to [@country, @city], notice: 'City was successfully updated.' }
68
- format.json { head :no_content }
69
- else
70
- format.html { render action: "edit" }
71
- format.json { render json: @city.errors, status: :unprocessable_entity }
72
- end
73
- end
74
- end
75
-
76
- # DELETE /cities/1
77
- # DELETE /cities/1.json
78
- def destroy
79
- @city = City.find(params[:id])
80
- @city.destroy
81
-
82
- respond_to do |format|
83
- format.html { redirect_to country_cities_url(@country) }
84
- format.json { head :no_content }
85
- end
86
- end
87
-
88
- private
89
-
90
- def load_country
91
- @country = Country.find(params[:country_id])
92
- end
93
- =end
94
- end
1
+ class CitiesController < ApplicationController
2
+ has_crud_actions
3
+ nested_of Country
4
+ =begin
5
+ before_filter :load_nested
6
+
7
+ # GET /cities
8
+ # GET /cities.json
9
+ def index
10
+ @cities = @country.cities
11
+
12
+ respond_to do |format|
13
+ format.html # index.html.erb
14
+ format.json { render json: @cities }
15
+ end
16
+ end
17
+
18
+ # GET /cities/1
19
+ # GET /cities/1.json
20
+ def show
21
+ @city = @country.cities.find(params[:id])
22
+
23
+ respond_to do |format|
24
+ format.html # show.html.erb
25
+ format.json { render json: @city }
26
+ end
27
+ end
28
+
29
+ # GET /cities/new
30
+ # GET /cities/new.json
31
+ def new
32
+ @city = @country.cities.build
33
+
34
+ respond_to do |format|
35
+ format.html # new.html.erb
36
+ format.json { render json: @city }
37
+ end
38
+ end
39
+
40
+ # GET /cities/1/edit
41
+ def edit
42
+ @city = @country.cities.find(params[:id])
43
+ end
44
+
45
+ # POST /cities
46
+ # POST /cities.json
47
+ def create
48
+ @city = @country.cities.build(params[:city])
49
+
50
+ respond_to do |format|
51
+ if @city.save
52
+ format.html { redirect_to [@country, @city], notice: 'City was successfully created.' }
53
+ format.json { render json: @city, status: :created }
54
+ else
55
+ format.html { render action: "new" }
56
+ format.json { render json: @city.errors, status: :unprocessable_entity }
57
+ end
58
+ end
59
+ end
60
+
61
+ # PUT /cities/1
62
+ # PUT /cities/1.json
63
+ def update
64
+ @city = @country.cities.find(params[:id])
65
+
66
+ respond_to do |format|
67
+ if @city.update_attributes(params[:city])
68
+ format.html { redirect_to [@country, @city], notice: 'City was successfully updated.' }
69
+ format.json { head :no_content }
70
+ else
71
+ format.html { render action: "edit" }
72
+ format.json { render json: @city.errors, status: :unprocessable_entity }
73
+ end
74
+ end
75
+ end
76
+
77
+ # DELETE /cities/1
78
+ # DELETE /cities/1.json
79
+ def destroy
80
+ @city = @country.cities.find(params[:id])
81
+ @city.destroy
82
+
83
+ respond_to do |format|
84
+ format.html { redirect_to country_cities_url(@country) }
85
+ format.json { head :no_content }
86
+ end
87
+ end
88
+
89
+ private
90
+
91
+ def load_nested
92
+ @country = Country.find(params[:country_id])
93
+ end
94
+ =end
95
+ end
@@ -1,86 +1,86 @@
1
- class CountriesController < ApplicationController
2
- has_crud_actions
3
- =begin
4
- # GET /countries
5
- # GET /countries.json
6
- def index
7
- @countries = Country.all
8
-
9
- respond_to do |format|
10
- format.html # index.html.erb
11
- format.json { render json: @countries }
12
- end
13
- end
14
-
15
- # GET /countries/1
16
- # GET /countries/1.json
17
- def show
18
- @country = Country.find(params[:id])
19
-
20
- respond_to do |format|
21
- format.html # show.html.erb
22
- format.json { render json: @country }
23
- end
24
- end
25
-
26
- # GET /countries/new
27
- # GET /countries/new.json
28
- def new
29
- @country = Country.new
30
-
31
- respond_to do |format|
32
- format.html # new.html.erb
33
- format.json { render json: @country }
34
- end
35
- end
36
-
37
- # GET /countries/1/edit
38
- def edit
39
- @country = Country.find(params[:id])
40
- end
41
-
42
- # POST /countries
43
- # POST /countries.json
44
- def create
45
- @country = Country.new(params[:country])
46
-
47
- respond_to do |format|
48
- if @country.save
49
- format.html { redirect_to @country, notice: 'Country was successfully created.' }
50
- format.json { render json: @country, status: :created, location: @country }
51
- else
52
- format.html { render action: "new" }
53
- format.json { render json: @country.errors, status: :unprocessable_entity }
54
- end
55
- end
56
- end
57
-
58
- # PUT /countries/1
59
- # PUT /countries/1.json
60
- def update
61
- @country = Country.find(params[:id])
62
-
63
- respond_to do |format|
64
- if @country.update_attributes(params[:country])
65
- format.html { redirect_to @country, notice: 'Country was successfully updated.' }
66
- format.json { head :no_content }
67
- else
68
- format.html { render action: "edit" }
69
- format.json { render json: @country.errors, status: :unprocessable_entity }
70
- end
71
- end
72
- end
73
-
74
- # DELETE /countries/1
75
- # DELETE /countries/1.json
76
- def destroy
77
- @country = Country.find(params[:id])
78
- @country.destroy
79
-
80
- respond_to do |format|
81
- format.html { redirect_to countries_url }
82
- format.json { head :no_content }
83
- end
84
- end
85
- =end
86
- end
1
+ class CountriesController < ApplicationController
2
+ has_crud_actions
3
+ =begin
4
+ # GET /countries
5
+ # GET /countries.json
6
+ def index
7
+ @countries = Country.all
8
+
9
+ respond_to do |format|
10
+ format.html # index.html.erb
11
+ format.json { render json: @countries }
12
+ end
13
+ end
14
+
15
+ # GET /countries/1
16
+ # GET /countries/1.json
17
+ def show
18
+ @country = Country.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html # show.html.erb
22
+ format.json { render json: @country }
23
+ end
24
+ end
25
+
26
+ # GET /countries/new
27
+ # GET /countries/new.json
28
+ def new
29
+ @country = Country.new
30
+
31
+ respond_to do |format|
32
+ format.html # new.html.erb
33
+ format.json { render json: @country }
34
+ end
35
+ end
36
+
37
+ # GET /countries/1/edit
38
+ def edit
39
+ @country = Country.find(params[:id])
40
+ end
41
+
42
+ # POST /countries
43
+ # POST /countries.json
44
+ def create
45
+ @country = Country.new(params[:country])
46
+
47
+ respond_to do |format|
48
+ if @country.save
49
+ format.html { redirect_to @country, notice: 'Country was successfully created.' }
50
+ format.json { render json: @country, status: :created, location: @country }
51
+ else
52
+ format.html { render action: "new" }
53
+ format.json { render json: @country.errors, status: :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ # PUT /countries/1
59
+ # PUT /countries/1.json
60
+ def update
61
+ @country = Country.find(params[:id])
62
+
63
+ respond_to do |format|
64
+ if @country.update_attributes(params[:country])
65
+ format.html { redirect_to @country, notice: 'Country was successfully updated.' }
66
+ format.json { head :no_content }
67
+ else
68
+ format.html { render action: "edit" }
69
+ format.json { render json: @country.errors, status: :unprocessable_entity }
70
+ end
71
+ end
72
+ end
73
+
74
+ # DELETE /countries/1
75
+ # DELETE /countries/1.json
76
+ def destroy
77
+ @country = Country.find(params[:id])
78
+ @country.destroy
79
+
80
+ respond_to do |format|
81
+ format.html { redirect_to countries_url }
82
+ format.json { head :no_content }
83
+ end
84
+ end
85
+ =end
86
+ end
@@ -0,0 +1,95 @@
1
+ class LanguagesController < ApplicationController
2
+ has_crud_actions
3
+
4
+ respond_to_create :html do
5
+ redirect_to action: :index
6
+ end
7
+
8
+ respond_to_update do |format|
9
+ format.html { redirect_to action: :index }
10
+ format.json { render json: @language }
11
+ end
12
+ =begin
13
+ # GET /languages
14
+ # GET /languages.json
15
+ def index
16
+ @languages = Language.all
17
+
18
+ respond_to do |format|
19
+ format.html # index.html.erb
20
+ format.json { render json: @languages }
21
+ end
22
+ end
23
+
24
+ # GET /languages/1
25
+ # GET /languages/1.json
26
+ def show
27
+ @language = Language.find(params[:id])
28
+
29
+ respond_to do |format|
30
+ format.html # show.html.erb
31
+ format.json { render json: @language }
32
+ end
33
+ end
34
+
35
+ # GET /languages/new
36
+ # GET /languages/new.json
37
+ def new
38
+ @language = Language.new
39
+
40
+ respond_to do |format|
41
+ format.html # new.html.erb
42
+ format.json { render json: @language }
43
+ end
44
+ end
45
+
46
+ # GET /languages/1/edit
47
+ def edit
48
+ @language = Language.find(params[:id])
49
+ end
50
+
51
+ # POST /languages
52
+ # POST /languages.json
53
+ def create
54
+ @language = Language.new(params[:language])
55
+
56
+ respond_to do |format|
57
+ if @language.save
58
+ format.html { redirect_to action: :index, notice: 'Language was successfully created.' }
59
+ format.json { render json: @language, status: :created, location: @language }
60
+ else
61
+ format.html { render action: "new" }
62
+ format.json { render json: @language.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ # PUT /languages/1
68
+ # PUT /languages/1.json
69
+ def update
70
+ @language = Language.find(params[:id])
71
+
72
+ respond_to do |format|
73
+ if @language.update_attributes(params[:language])
74
+ format.html { redirect_to action: :index, notice: 'Language was successfully updated.' }
75
+ format.json { head :no_content }
76
+ else
77
+ format.html { render action: "edit" }
78
+ format.json { render json: @language.errors, status: :unprocessable_entity }
79
+ end
80
+ end
81
+ end
82
+
83
+ # DELETE /languages/1
84
+ # DELETE /languages/1.json
85
+ def destroy
86
+ @language = Language.find(params[:id])
87
+ @language.destroy
88
+
89
+ respond_to do |format|
90
+ format.html { redirect_to languages_url }
91
+ format.json { head :no_content }
92
+ end
93
+ end
94
+ =end
95
+ end