crudify 0.0.3 → 0.0.4
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.
- data/.gitignore +4 -2
- data/Gemfile.lock +57 -28
- data/README.md +121 -3
- data/Rakefile +3 -4
- data/crudify.gemspec +5 -2
- data/lib/crudify.rb +5 -1
- data/lib/crudify/base.rb +8 -7
- data/lib/crudify/class_methods.rb +35 -21
- data/lib/crudify/hook_methods.rb +30 -33
- data/lib/crudify/version.rb +1 -1
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/controllers/admin/peanut_butters_controller.rb +5 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/jellies_controller.rb +7 -0
- data/test/dummy/app/models/jelly.rb +9 -0
- data/test/dummy/app/models/peanut_butter.rb +8 -0
- data/test/dummy/app/views/admin/peanut_butters/_fields.html.erb +4 -0
- data/test/dummy/app/views/admin/peanut_butters/edit.html.erb +11 -0
- data/test/dummy/app/views/admin/peanut_butters/index.html.erb +23 -0
- data/test/dummy/app/views/admin/peanut_butters/new.html.erb +11 -0
- data/test/dummy/app/views/admin/peanut_butters/show.html.erb +14 -0
- data/test/dummy/app/views/jellies/_fields.html.erb +8 -0
- data/test/dummy/app/views/jellies/edit.html.erb +11 -0
- data/test/dummy/app/views/jellies/index.html.erb +23 -0
- data/test/dummy/app/views/jellies/new.html.erb +11 -0
- data/test/dummy/app/views/jellies/show.html.erb +15 -0
- data/test/dummy/app/views/layouts/application.html.erb +72 -0
- data/test/dummy/app/views/shared/_error_messages.html.erb +9 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +45 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +22 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +26 -0
- data/test/dummy/config/environments/production.rb +49 -0
- data/test/dummy/config/environments/test.rb +38 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/green_eggs_and_spam.rb +2 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/routes.rb +11 -0
- data/test/dummy/db/migrate/20110223073415_create_jellies.rb +13 -0
- data/test/dummy/db/migrate/20110223073427_create_peanut_butters.rb +12 -0
- data/test/dummy/db/schema.rb +28 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/{log/development.log → test/dummy/public/favicon.ico} +0 -0
- data/test/dummy/public/javascripts/application.js +2 -0
- data/test/dummy/public/javascripts/controls.js +965 -0
- data/test/dummy/public/javascripts/dragdrop.js +974 -0
- data/test/dummy/public/javascripts/effects.js +1123 -0
- data/test/dummy/public/javascripts/index.html +239 -0
- data/test/dummy/public/javascripts/prototype.js +6001 -0
- data/test/dummy/public/javascripts/rails.js +191 -0
- data/test/dummy/public/stylesheets/styles.css +126 -0
- data/test/dummy/script/rails +6 -0
- data/test/functional/jellies_controller_test.rb +55 -0
- data/test/helper.rb +42 -31
- data/test/integration/demo_test.rb +79 -0
- data/test/{test_controller.rb → unit/crudify_test.rb} +17 -17
- metadata +149 -13
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class DemoTest < ActionController::IntegrationTest
|
4
|
+
|
5
|
+
def setup
|
6
|
+
Jelly.destroy_all
|
7
|
+
end
|
8
|
+
|
9
|
+
should "visit homepage with no jellies" do
|
10
|
+
visit root_path
|
11
|
+
assert page.has_content?('Listing Jellies')
|
12
|
+
assert page.has_content?('create a new jelly')
|
13
|
+
assert !page.has_content?('jelly named')
|
14
|
+
end
|
15
|
+
|
16
|
+
should "create a new jelly" do
|
17
|
+
visit new_jelly_path
|
18
|
+
assert page.has_content?('New Jelly')
|
19
|
+
fill_in 'Title', :with => 'Capybara and Banana'
|
20
|
+
fill_in 'Name', :with => 'Capyberry'
|
21
|
+
click_button 'create'
|
22
|
+
assert_equal jellies_path, current_path
|
23
|
+
assert_flash(:notice, '"Capybara and Banana" was successfully created.')
|
24
|
+
assert page.has_content?('Listing Jellies'), "Content should have title for index"
|
25
|
+
assert page.has_content?('Capyberry'), "Content should contain name of new jelly"
|
26
|
+
end
|
27
|
+
|
28
|
+
context "an existing jelly" do
|
29
|
+
|
30
|
+
setup do
|
31
|
+
@jelly = Jelly.create(:title => "Capygreen Times", :name => "Greenberry")
|
32
|
+
end
|
33
|
+
|
34
|
+
should "visit homepage with a jelly" do
|
35
|
+
visit root_path
|
36
|
+
assert page.has_content?('Listing Jellies')
|
37
|
+
assert page.has_content?('create a new jelly')
|
38
|
+
assert page.has_content?('jelly named Greenberry')
|
39
|
+
assert has_link?('read', :href => jelly_path(@jelly))
|
40
|
+
assert has_link?('update', :href => edit_jelly_path(@jelly))
|
41
|
+
end
|
42
|
+
|
43
|
+
should "be shown" do
|
44
|
+
visit jelly_path(@jelly)
|
45
|
+
assert page.has_content?('Show Jelly')
|
46
|
+
within "#content" do
|
47
|
+
assert page.has_content?(@jelly.title)
|
48
|
+
assert page.has_content?(@jelly.name)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
should "get updated" do
|
53
|
+
visit edit_jelly_path(@jelly)
|
54
|
+
assert page.has_content?('Edit Jelly')
|
55
|
+
fill_in 'Title', :with => 'Banana Capy'
|
56
|
+
fill_in 'Name', :with => 'Capyberry and Banana'
|
57
|
+
click_button 'update'
|
58
|
+
assert_flash(:notice, '"Banana Capy" was successfully updated.')
|
59
|
+
assert page.has_content?('Listing Jellies')
|
60
|
+
within "#content" do
|
61
|
+
assert page.has_content?('Capyberry and Banana')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
should "get deleted" do
|
66
|
+
visit jelly_path(@jelly)
|
67
|
+
assert page.has_content?('Show Jelly')
|
68
|
+
evaluate_script 'window.confirm = function() { return true; }'
|
69
|
+
click_link 'delete'
|
70
|
+
assert_flash(:notice, %("#{@jelly.title}" was successfully removed.))
|
71
|
+
assert page.has_content?('Listing Jellies')
|
72
|
+
within "#content" do
|
73
|
+
assert !page.has_content?(@jelly.name)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -1,15 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
def assert_has_method?(methods, name)
|
5
|
-
|
6
|
-
end
|
1
|
+
require 'helper'
|
7
2
|
|
8
3
|
|
9
|
-
class
|
4
|
+
class CrudifyTest < Test::Unit::TestCase
|
10
5
|
|
11
6
|
def setup
|
12
|
-
|
7
|
+
|
8
|
+
Jelly.destroy_all
|
9
|
+
10.times{|i|
|
10
|
+
Jelly.create(:title => "Yummy Jelly #{i}", :name => "Sample #{i}")
|
11
|
+
}
|
12
|
+
|
13
|
+
@controller = JelliesController.new
|
13
14
|
@controller.params = {}
|
14
15
|
end
|
15
16
|
|
@@ -21,8 +22,7 @@ class TestController < Test::Unit::TestCase
|
|
21
22
|
:search_all_jellies
|
22
23
|
].each do |method|
|
23
24
|
assert @controller.methods.include?(method), "Should have #{method}"
|
24
|
-
end
|
25
|
-
|
25
|
+
end
|
26
26
|
end
|
27
27
|
|
28
28
|
should "have private hook methods" do
|
@@ -44,14 +44,14 @@ class TestController < Test::Unit::TestCase
|
|
44
44
|
|
45
45
|
should "get collection" do
|
46
46
|
jellies = @controller.send(:find_all_jellies)
|
47
|
-
assert_equal
|
47
|
+
assert_equal 10, jellies.length, "Confirm 10 total jellies"
|
48
48
|
end
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
should "paginate collection" do
|
51
|
+
jellies = @controller.send(:paginate_all_jellies)
|
52
|
+
|
53
|
+
assert_equal 4, jellies.total_pages, "10 jellies, 3 per page = 4 pages"
|
54
|
+
assert_equal 10, jellies.total_entries, "Confirm 10 total jellies"
|
55
|
+
end
|
56
56
|
|
57
57
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: crudify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Spencer Steffen
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-03-05 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,39 +25,72 @@ dependencies:
|
|
25
25
|
type: :runtime
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: will_paginate
|
29
29
|
prerelease: false
|
30
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 2.3.15
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
39
|
+
name: meta_search
|
40
40
|
prerelease: false
|
41
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.0.1
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: shoulda
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
42
53
|
none: false
|
43
54
|
requirements:
|
44
55
|
- - ">="
|
45
56
|
- !ruby/object:Gem::Version
|
46
57
|
version: 2.11.3
|
47
58
|
type: :development
|
48
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
49
60
|
- !ruby/object:Gem::Dependency
|
50
61
|
name: sqlite3-ruby
|
51
62
|
prerelease: false
|
52
|
-
requirement: &
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
53
64
|
none: false
|
54
65
|
requirements:
|
55
66
|
- - ">="
|
56
67
|
- !ruby/object:Gem::Version
|
57
68
|
version: 1.3.3
|
58
69
|
type: :development
|
59
|
-
version_requirements: *
|
60
|
-
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: capybara
|
73
|
+
prerelease: false
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.4.1
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: selenium-webdriver
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.1.3
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id007
|
93
|
+
description: Crudify is a dynamic resource controller for Rails 3. The idea is skinny controllers with powerful hooks for easy customization.
|
61
94
|
email:
|
62
95
|
- spencer@citrusme.com
|
63
96
|
executables: []
|
@@ -79,9 +112,60 @@ files:
|
|
79
112
|
- lib/crudify/class_methods.rb
|
80
113
|
- lib/crudify/hook_methods.rb
|
81
114
|
- lib/crudify/version.rb
|
82
|
-
-
|
115
|
+
- test/dummy/Rakefile
|
116
|
+
- test/dummy/app/controllers/admin/peanut_butters_controller.rb
|
117
|
+
- test/dummy/app/controllers/application_controller.rb
|
118
|
+
- test/dummy/app/controllers/jellies_controller.rb
|
119
|
+
- test/dummy/app/models/jelly.rb
|
120
|
+
- test/dummy/app/models/peanut_butter.rb
|
121
|
+
- test/dummy/app/views/admin/peanut_butters/_fields.html.erb
|
122
|
+
- test/dummy/app/views/admin/peanut_butters/edit.html.erb
|
123
|
+
- test/dummy/app/views/admin/peanut_butters/index.html.erb
|
124
|
+
- test/dummy/app/views/admin/peanut_butters/new.html.erb
|
125
|
+
- test/dummy/app/views/admin/peanut_butters/show.html.erb
|
126
|
+
- test/dummy/app/views/jellies/_fields.html.erb
|
127
|
+
- test/dummy/app/views/jellies/edit.html.erb
|
128
|
+
- test/dummy/app/views/jellies/index.html.erb
|
129
|
+
- test/dummy/app/views/jellies/new.html.erb
|
130
|
+
- test/dummy/app/views/jellies/show.html.erb
|
131
|
+
- test/dummy/app/views/layouts/application.html.erb
|
132
|
+
- test/dummy/app/views/shared/_error_messages.html.erb
|
133
|
+
- test/dummy/config.ru
|
134
|
+
- test/dummy/config/application.rb
|
135
|
+
- test/dummy/config/boot.rb
|
136
|
+
- test/dummy/config/database.yml
|
137
|
+
- test/dummy/config/environment.rb
|
138
|
+
- test/dummy/config/environments/development.rb
|
139
|
+
- test/dummy/config/environments/production.rb
|
140
|
+
- test/dummy/config/environments/test.rb
|
141
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
142
|
+
- test/dummy/config/initializers/green_eggs_and_spam.rb
|
143
|
+
- test/dummy/config/initializers/inflections.rb
|
144
|
+
- test/dummy/config/initializers/mime_types.rb
|
145
|
+
- test/dummy/config/initializers/secret_token.rb
|
146
|
+
- test/dummy/config/initializers/session_store.rb
|
147
|
+
- test/dummy/config/routes.rb
|
148
|
+
- test/dummy/db/migrate/20110223073415_create_jellies.rb
|
149
|
+
- test/dummy/db/migrate/20110223073427_create_peanut_butters.rb
|
150
|
+
- test/dummy/db/production.sqlite3
|
151
|
+
- test/dummy/db/schema.rb
|
152
|
+
- test/dummy/public/404.html
|
153
|
+
- test/dummy/public/422.html
|
154
|
+
- test/dummy/public/500.html
|
155
|
+
- test/dummy/public/favicon.ico
|
156
|
+
- test/dummy/public/javascripts/application.js
|
157
|
+
- test/dummy/public/javascripts/controls.js
|
158
|
+
- test/dummy/public/javascripts/dragdrop.js
|
159
|
+
- test/dummy/public/javascripts/effects.js
|
160
|
+
- test/dummy/public/javascripts/index.html
|
161
|
+
- test/dummy/public/javascripts/prototype.js
|
162
|
+
- test/dummy/public/javascripts/rails.js
|
163
|
+
- test/dummy/public/stylesheets/styles.css
|
164
|
+
- test/dummy/script/rails
|
165
|
+
- test/functional/jellies_controller_test.rb
|
83
166
|
- test/helper.rb
|
84
|
-
- test/
|
167
|
+
- test/integration/demo_test.rb
|
168
|
+
- test/unit/crudify_test.rb
|
85
169
|
has_rdoc: true
|
86
170
|
homepage: http://github.com/citrus/crudify
|
87
171
|
licenses: []
|
@@ -106,10 +190,62 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
190
|
requirements: []
|
107
191
|
|
108
192
|
rubyforge_project:
|
109
|
-
rubygems_version: 1.
|
193
|
+
rubygems_version: 1.6.0
|
110
194
|
signing_key:
|
111
195
|
specification_version: 3
|
112
196
|
summary: Crudify is a dynamic resource controller for Rails 3.
|
113
197
|
test_files:
|
198
|
+
- test/dummy/Rakefile
|
199
|
+
- test/dummy/app/controllers/admin/peanut_butters_controller.rb
|
200
|
+
- test/dummy/app/controllers/application_controller.rb
|
201
|
+
- test/dummy/app/controllers/jellies_controller.rb
|
202
|
+
- test/dummy/app/models/jelly.rb
|
203
|
+
- test/dummy/app/models/peanut_butter.rb
|
204
|
+
- test/dummy/app/views/admin/peanut_butters/_fields.html.erb
|
205
|
+
- test/dummy/app/views/admin/peanut_butters/edit.html.erb
|
206
|
+
- test/dummy/app/views/admin/peanut_butters/index.html.erb
|
207
|
+
- test/dummy/app/views/admin/peanut_butters/new.html.erb
|
208
|
+
- test/dummy/app/views/admin/peanut_butters/show.html.erb
|
209
|
+
- test/dummy/app/views/jellies/_fields.html.erb
|
210
|
+
- test/dummy/app/views/jellies/edit.html.erb
|
211
|
+
- test/dummy/app/views/jellies/index.html.erb
|
212
|
+
- test/dummy/app/views/jellies/new.html.erb
|
213
|
+
- test/dummy/app/views/jellies/show.html.erb
|
214
|
+
- test/dummy/app/views/layouts/application.html.erb
|
215
|
+
- test/dummy/app/views/shared/_error_messages.html.erb
|
216
|
+
- test/dummy/config.ru
|
217
|
+
- test/dummy/config/application.rb
|
218
|
+
- test/dummy/config/boot.rb
|
219
|
+
- test/dummy/config/database.yml
|
220
|
+
- test/dummy/config/environment.rb
|
221
|
+
- test/dummy/config/environments/development.rb
|
222
|
+
- test/dummy/config/environments/production.rb
|
223
|
+
- test/dummy/config/environments/test.rb
|
224
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
225
|
+
- test/dummy/config/initializers/green_eggs_and_spam.rb
|
226
|
+
- test/dummy/config/initializers/inflections.rb
|
227
|
+
- test/dummy/config/initializers/mime_types.rb
|
228
|
+
- test/dummy/config/initializers/secret_token.rb
|
229
|
+
- test/dummy/config/initializers/session_store.rb
|
230
|
+
- test/dummy/config/routes.rb
|
231
|
+
- test/dummy/db/migrate/20110223073415_create_jellies.rb
|
232
|
+
- test/dummy/db/migrate/20110223073427_create_peanut_butters.rb
|
233
|
+
- test/dummy/db/production.sqlite3
|
234
|
+
- test/dummy/db/schema.rb
|
235
|
+
- test/dummy/public/404.html
|
236
|
+
- test/dummy/public/422.html
|
237
|
+
- test/dummy/public/500.html
|
238
|
+
- test/dummy/public/favicon.ico
|
239
|
+
- test/dummy/public/javascripts/application.js
|
240
|
+
- test/dummy/public/javascripts/controls.js
|
241
|
+
- test/dummy/public/javascripts/dragdrop.js
|
242
|
+
- test/dummy/public/javascripts/effects.js
|
243
|
+
- test/dummy/public/javascripts/index.html
|
244
|
+
- test/dummy/public/javascripts/prototype.js
|
245
|
+
- test/dummy/public/javascripts/rails.js
|
246
|
+
- test/dummy/public/stylesheets/styles.css
|
247
|
+
- test/dummy/script/rails
|
248
|
+
- test/functional/jellies_controller_test.rb
|
114
249
|
- test/helper.rb
|
115
|
-
- test/
|
250
|
+
- test/integration/demo_test.rb
|
251
|
+
- test/unit/crudify_test.rb
|