shoulda 2.11.3 → 3.0.0.beta1

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 (262) hide show
  1. data/Gemfile +9 -0
  2. data/Gemfile.lock +108 -0
  3. data/README.md +95 -0
  4. data/Rakefile +6 -50
  5. data/lib/shoulda/version.rb +1 -1
  6. metadata +50 -269
  7. data/README.rdoc +0 -154
  8. data/bin/convert_to_should_syntax +0 -42
  9. data/lib/shoulda.rb +0 -9
  10. data/lib/shoulda/action_controller.rb +0 -34
  11. data/lib/shoulda/action_controller/macros.rb +0 -221
  12. data/lib/shoulda/action_controller/matchers.rb +0 -39
  13. data/lib/shoulda/action_controller/matchers/assign_to_matcher.rb +0 -112
  14. data/lib/shoulda/action_controller/matchers/filter_param_matcher.rb +0 -74
  15. data/lib/shoulda/action_controller/matchers/redirect_to_matcher.rb +0 -62
  16. data/lib/shoulda/action_controller/matchers/render_template_matcher.rb +0 -54
  17. data/lib/shoulda/action_controller/matchers/render_with_layout_matcher.rb +0 -99
  18. data/lib/shoulda/action_controller/matchers/respond_with_content_type_matcher.rb +0 -74
  19. data/lib/shoulda/action_controller/matchers/respond_with_matcher.rb +0 -85
  20. data/lib/shoulda/action_controller/matchers/route_matcher.rb +0 -93
  21. data/lib/shoulda/action_controller/matchers/set_session_matcher.rb +0 -98
  22. data/lib/shoulda/action_controller/matchers/set_the_flash_matcher.rb +0 -100
  23. data/lib/shoulda/action_mailer.rb +0 -13
  24. data/lib/shoulda/action_mailer/assertions.rb +0 -42
  25. data/lib/shoulda/action_mailer/matchers.rb +0 -22
  26. data/lib/shoulda/action_mailer/matchers/have_sent_email.rb +0 -110
  27. data/lib/shoulda/active_record.rb +0 -16
  28. data/lib/shoulda/active_record/assertions.rb +0 -69
  29. data/lib/shoulda/active_record/helpers.rb +0 -32
  30. data/lib/shoulda/active_record/macros.rb +0 -457
  31. data/lib/shoulda/active_record/matchers.rb +0 -42
  32. data/lib/shoulda/active_record/matchers/allow_mass_assignment_of_matcher.rb +0 -83
  33. data/lib/shoulda/active_record/matchers/allow_value_matcher.rb +0 -110
  34. data/lib/shoulda/active_record/matchers/association_matcher.rb +0 -226
  35. data/lib/shoulda/active_record/matchers/ensure_inclusion_of_matcher.rb +0 -87
  36. data/lib/shoulda/active_record/matchers/ensure_length_of_matcher.rb +0 -141
  37. data/lib/shoulda/active_record/matchers/have_db_column_matcher.rb +0 -169
  38. data/lib/shoulda/active_record/matchers/have_db_index_matcher.rb +0 -112
  39. data/lib/shoulda/active_record/matchers/have_readonly_attribute_matcher.rb +0 -59
  40. data/lib/shoulda/active_record/matchers/validate_acceptance_of_matcher.rb +0 -41
  41. data/lib/shoulda/active_record/matchers/validate_format_of_matcher.rb +0 -65
  42. data/lib/shoulda/active_record/matchers/validate_numericality_of_matcher.rb +0 -39
  43. data/lib/shoulda/active_record/matchers/validate_presence_of_matcher.rb +0 -60
  44. data/lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb +0 -148
  45. data/lib/shoulda/active_record/matchers/validation_matcher.rb +0 -56
  46. data/lib/shoulda/assertions.rb +0 -79
  47. data/lib/shoulda/autoload_macros.rb +0 -46
  48. data/lib/shoulda/context.rb +0 -433
  49. data/lib/shoulda/helpers.rb +0 -8
  50. data/lib/shoulda/integrations/rspec.rb +0 -13
  51. data/lib/shoulda/integrations/rspec2.rb +0 -22
  52. data/lib/shoulda/integrations/test_unit.rb +0 -22
  53. data/lib/shoulda/macros.rb +0 -161
  54. data/lib/shoulda/private_helpers.rb +0 -13
  55. data/lib/shoulda/proc_extensions.rb +0 -14
  56. data/lib/shoulda/rails.rb +0 -8
  57. data/lib/shoulda/tasks.rb +0 -3
  58. data/lib/shoulda/tasks/list_tests.rake +0 -29
  59. data/lib/shoulda/tasks/yaml_to_shoulda.rake +0 -28
  60. data/rails/init.rb +0 -8
  61. data/test/README +0 -36
  62. data/test/fail_macros.rb +0 -55
  63. data/test/fixtures/addresses.yml +0 -3
  64. data/test/fixtures/friendships.yml +0 -0
  65. data/test/fixtures/posts.yml +0 -5
  66. data/test/fixtures/products.yml +0 -0
  67. data/test/fixtures/taggings.yml +0 -0
  68. data/test/fixtures/tags.yml +0 -9
  69. data/test/fixtures/users.yml +0 -6
  70. data/test/functional/posts_controller_test.rb +0 -121
  71. data/test/functional/users_controller_test.rb +0 -19
  72. data/test/matchers/action_mailer/have_sent_email_test.rb +0 -70
  73. data/test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb +0 -74
  74. data/test/matchers/active_record/allow_value_matcher_test.rb +0 -64
  75. data/test/matchers/active_record/association_matcher_test.rb +0 -263
  76. data/test/matchers/active_record/ensure_inclusion_of_matcher_test.rb +0 -81
  77. data/test/matchers/active_record/ensure_length_of_matcher_test.rb +0 -158
  78. data/test/matchers/active_record/have_db_column_matcher_test.rb +0 -169
  79. data/test/matchers/active_record/have_db_index_matcher_test.rb +0 -91
  80. data/test/matchers/active_record/have_readonly_attributes_matcher_test.rb +0 -29
  81. data/test/matchers/active_record/validate_acceptance_of_matcher_test.rb +0 -44
  82. data/test/matchers/active_record/validate_format_of_matcher_test.rb +0 -39
  83. data/test/matchers/active_record/validate_numericality_of_matcher_test.rb +0 -52
  84. data/test/matchers/active_record/validate_presence_of_matcher_test.rb +0 -86
  85. data/test/matchers/active_record/validate_uniqueness_of_matcher_test.rb +0 -147
  86. data/test/matchers/controller/assign_to_matcher_test.rb +0 -45
  87. data/test/matchers/controller/filter_param_matcher_test.rb +0 -40
  88. data/test/matchers/controller/redirect_to_matcher_test.rb +0 -37
  89. data/test/matchers/controller/render_template_matcher_test.rb +0 -37
  90. data/test/matchers/controller/render_with_layout_matcher_test.rb +0 -47
  91. data/test/matchers/controller/respond_with_content_type_matcher_test.rb +0 -32
  92. data/test/matchers/controller/respond_with_matcher_test.rb +0 -96
  93. data/test/matchers/controller/route_matcher_test.rb +0 -75
  94. data/test/matchers/controller/set_session_matcher_test.rb +0 -48
  95. data/test/matchers/controller/set_the_flash_matcher.rb +0 -95
  96. data/test/other/autoload_macro_test.rb +0 -18
  97. data/test/other/context_test.rb +0 -372
  98. data/test/other/convert_to_should_syntax_test.rb +0 -63
  99. data/test/other/helpers_test.rb +0 -317
  100. data/test/other/private_helpers_test.rb +0 -32
  101. data/test/other/should_test.rb +0 -271
  102. data/test/rails2_model_builder.rb +0 -130
  103. data/test/rails2_root/app/controllers/application_controller.rb +0 -22
  104. data/test/rails2_root/app/controllers/posts_controller.rb +0 -87
  105. data/test/rails2_root/app/controllers/users_controller.rb +0 -84
  106. data/test/rails2_root/app/helpers/application_helper.rb +0 -3
  107. data/test/rails2_root/app/helpers/posts_helper.rb +0 -2
  108. data/test/rails2_root/app/helpers/users_helper.rb +0 -2
  109. data/test/rails2_root/app/models/address.rb +0 -7
  110. data/test/rails2_root/app/models/flea.rb +0 -11
  111. data/test/rails2_root/app/models/friendship.rb +0 -4
  112. data/test/rails2_root/app/models/notifier.rb +0 -8
  113. data/test/rails2_root/app/models/pets/cat.rb +0 -7
  114. data/test/rails2_root/app/models/pets/dog.rb +0 -10
  115. data/test/rails2_root/app/models/post.rb +0 -12
  116. data/test/rails2_root/app/models/product.rb +0 -12
  117. data/test/rails2_root/app/models/profile.rb +0 -2
  118. data/test/rails2_root/app/models/registration.rb +0 -2
  119. data/test/rails2_root/app/models/tag.rb +0 -8
  120. data/test/rails2_root/app/models/tagging.rb +0 -4
  121. data/test/rails2_root/app/models/treat.rb +0 -3
  122. data/test/rails2_root/app/models/user.rb +0 -32
  123. data/test/rails2_root/app/views/layouts/posts.rhtml +0 -19
  124. data/test/rails2_root/app/views/layouts/users.rhtml +0 -17
  125. data/test/rails2_root/app/views/layouts/wide.html.erb +0 -1
  126. data/test/rails2_root/app/views/notifier/the_email.html.erb +0 -1
  127. data/test/rails2_root/app/views/posts/edit.rhtml +0 -27
  128. data/test/rails2_root/app/views/posts/index.rhtml +0 -25
  129. data/test/rails2_root/app/views/posts/new.rhtml +0 -26
  130. data/test/rails2_root/app/views/posts/show.rhtml +0 -18
  131. data/test/rails2_root/app/views/users/edit.rhtml +0 -22
  132. data/test/rails2_root/app/views/users/index.rhtml +0 -22
  133. data/test/rails2_root/app/views/users/new.rhtml +0 -21
  134. data/test/rails2_root/app/views/users/show.rhtml +0 -13
  135. data/test/rails2_root/config/boot.rb +0 -110
  136. data/test/rails2_root/config/database.yml +0 -4
  137. data/test/rails2_root/config/environment.rb +0 -17
  138. data/test/rails2_root/config/environments/test.rb +0 -23
  139. data/test/rails2_root/config/initializers/new_rails_defaults.rb +0 -15
  140. data/test/rails2_root/config/initializers/shoulda.rb +0 -8
  141. data/test/rails2_root/config/routes.rb +0 -6
  142. data/test/rails2_root/db/migrate/001_create_users.rb +0 -19
  143. data/test/rails2_root/db/migrate/002_create_posts.rb +0 -13
  144. data/test/rails2_root/db/migrate/003_create_taggings.rb +0 -12
  145. data/test/rails2_root/db/migrate/004_create_tags.rb +0 -11
  146. data/test/rails2_root/db/migrate/005_create_dogs.rb +0 -12
  147. data/test/rails2_root/db/migrate/006_create_addresses.rb +0 -14
  148. data/test/rails2_root/db/migrate/007_create_fleas.rb +0 -11
  149. data/test/rails2_root/db/migrate/008_create_dogs_fleas.rb +0 -12
  150. data/test/rails2_root/db/migrate/009_create_products.rb +0 -17
  151. data/test/rails2_root/db/migrate/010_create_friendships.rb +0 -14
  152. data/test/rails2_root/db/migrate/011_create_treats.rb +0 -12
  153. data/test/rails2_root/db/migrate/20090506203502_create_profiles.rb +0 -12
  154. data/test/rails2_root/db/migrate/20090506203536_create_registrations.rb +0 -14
  155. data/test/rails2_root/db/migrate/20090513104502_create_cats.rb +0 -12
  156. data/test/rails2_root/db/schema.rb +0 -0
  157. data/test/rails2_root/log/test.log +0 -50381
  158. data/test/rails2_root/public/404.html +0 -30
  159. data/test/rails2_root/public/422.html +0 -30
  160. data/test/rails2_root/public/500.html +0 -30
  161. data/test/rails2_root/script/console +0 -3
  162. data/test/rails2_root/script/generate +0 -3
  163. data/test/rails2_root/test/shoulda_macros/custom_macro.rb +0 -6
  164. data/test/rails2_root/vendor/gems/gem_with_macro-0.0.1/shoulda_macros/gem_macro.rb +0 -6
  165. data/test/rails2_root/vendor/plugins/plugin_with_macro/shoulda_macros/plugin_macro.rb +0 -6
  166. data/test/rails2_test_helper.rb +0 -6
  167. data/test/rails3_model_builder.rb +0 -118
  168. data/test/rails3_root/Gemfile +0 -28
  169. data/test/rails3_root/README +0 -244
  170. data/test/rails3_root/Rakefile +0 -10
  171. data/test/rails3_root/app/controllers/application_controller.rb +0 -22
  172. data/test/rails3_root/app/controllers/posts_controller.rb +0 -87
  173. data/test/rails3_root/app/controllers/users_controller.rb +0 -82
  174. data/test/rails3_root/app/helpers/application_helper.rb +0 -2
  175. data/test/rails3_root/app/models/address.rb +0 -7
  176. data/test/rails3_root/app/models/flea.rb +0 -11
  177. data/test/rails3_root/app/models/friendship.rb +0 -4
  178. data/test/rails3_root/app/models/notifier.rb +0 -8
  179. data/test/rails3_root/app/models/pets/cat.rb +0 -7
  180. data/test/rails3_root/app/models/pets/dog.rb +0 -10
  181. data/test/rails3_root/app/models/post.rb +0 -12
  182. data/test/rails3_root/app/models/product.rb +0 -12
  183. data/test/rails3_root/app/models/profile.rb +0 -2
  184. data/test/rails3_root/app/models/registration.rb +0 -2
  185. data/test/rails3_root/app/models/tag.rb +0 -8
  186. data/test/rails3_root/app/models/tagging.rb +0 -4
  187. data/test/rails3_root/app/models/treat.rb +0 -3
  188. data/test/rails3_root/app/models/user.rb +0 -32
  189. data/test/rails3_root/app/views/layouts/application.html.erb +0 -14
  190. data/test/rails3_root/app/views/layouts/posts.rhtml +0 -19
  191. data/test/rails3_root/app/views/layouts/users.rhtml +0 -17
  192. data/test/rails3_root/app/views/layouts/wide.html.erb +0 -1
  193. data/test/rails3_root/app/views/notifier/the_email.html.erb +0 -1
  194. data/test/rails3_root/app/views/posts/edit.rhtml +0 -27
  195. data/test/rails3_root/app/views/posts/index.rhtml +0 -25
  196. data/test/rails3_root/app/views/posts/new.rhtml +0 -24
  197. data/test/rails3_root/app/views/posts/show.rhtml +0 -18
  198. data/test/rails3_root/app/views/users/edit.rhtml +0 -22
  199. data/test/rails3_root/app/views/users/index.rhtml +0 -22
  200. data/test/rails3_root/app/views/users/new.rhtml +0 -21
  201. data/test/rails3_root/app/views/users/show.rhtml +0 -13
  202. data/test/rails3_root/config.ru +0 -4
  203. data/test/rails3_root/config/application.rb +0 -46
  204. data/test/rails3_root/config/boot.rb +0 -6
  205. data/test/rails3_root/config/database.yml +0 -22
  206. data/test/rails3_root/config/environment.rb +0 -5
  207. data/test/rails3_root/config/environments/development.rb +0 -19
  208. data/test/rails3_root/config/environments/production.rb +0 -42
  209. data/test/rails3_root/config/environments/test.rb +0 -32
  210. data/test/rails3_root/config/initializers/backtrace_silencers.rb +0 -7
  211. data/test/rails3_root/config/initializers/inflections.rb +0 -10
  212. data/test/rails3_root/config/initializers/mime_types.rb +0 -5
  213. data/test/rails3_root/config/initializers/secret_token.rb +0 -7
  214. data/test/rails3_root/config/initializers/session_store.rb +0 -8
  215. data/test/rails3_root/config/locales/en.yml +0 -5
  216. data/test/rails3_root/config/routes.rb +0 -4
  217. data/test/rails3_root/db/migrate/001_create_users.rb +0 -19
  218. data/test/rails3_root/db/migrate/002_create_posts.rb +0 -13
  219. data/test/rails3_root/db/migrate/003_create_taggings.rb +0 -12
  220. data/test/rails3_root/db/migrate/004_create_tags.rb +0 -11
  221. data/test/rails3_root/db/migrate/005_create_dogs.rb +0 -12
  222. data/test/rails3_root/db/migrate/006_create_addresses.rb +0 -14
  223. data/test/rails3_root/db/migrate/007_create_fleas.rb +0 -11
  224. data/test/rails3_root/db/migrate/008_create_dogs_fleas.rb +0 -12
  225. data/test/rails3_root/db/migrate/009_create_products.rb +0 -17
  226. data/test/rails3_root/db/migrate/010_create_friendships.rb +0 -14
  227. data/test/rails3_root/db/migrate/011_create_treats.rb +0 -12
  228. data/test/rails3_root/db/migrate/20090506203502_create_profiles.rb +0 -12
  229. data/test/rails3_root/db/migrate/20090506203536_create_registrations.rb +0 -14
  230. data/test/rails3_root/db/migrate/20090513104502_create_cats.rb +0 -12
  231. data/test/rails3_root/db/seeds.rb +0 -7
  232. data/test/rails3_root/db/test.sqlite3 +0 -0
  233. data/test/rails3_root/log/test.log +0 -10834
  234. data/test/rails3_root/public/404.html +0 -26
  235. data/test/rails3_root/public/422.html +0 -26
  236. data/test/rails3_root/public/500.html +0 -26
  237. data/test/rails3_root/public/favicon.ico +0 -0
  238. data/test/rails3_root/public/images/rails.png +0 -0
  239. data/test/rails3_root/public/index.html +0 -279
  240. data/test/rails3_root/public/javascripts/application.js +0 -2
  241. data/test/rails3_root/public/javascripts/controls.js +0 -965
  242. data/test/rails3_root/public/javascripts/dragdrop.js +0 -974
  243. data/test/rails3_root/public/javascripts/effects.js +0 -1123
  244. data/test/rails3_root/public/javascripts/prototype.js +0 -4874
  245. data/test/rails3_root/public/javascripts/rails.js +0 -118
  246. data/test/rails3_root/public/robots.txt +0 -5
  247. data/test/rails3_root/script/rails +0 -9
  248. data/test/rails3_root/test/performance/browsing_test.rb +0 -9
  249. data/test/rails3_root/test/test_helper.rb +0 -13
  250. data/test/rails3_test_helper.rb +0 -6
  251. data/test/rspec_test.rb +0 -207
  252. data/test/test_helper.rb +0 -36
  253. data/test/unit/address_test.rb +0 -10
  254. data/test/unit/cat_test.rb +0 -7
  255. data/test/unit/dog_test.rb +0 -9
  256. data/test/unit/flea_test.rb +0 -14
  257. data/test/unit/friendship_test.rb +0 -6
  258. data/test/unit/post_test.rb +0 -15
  259. data/test/unit/product_test.rb +0 -23
  260. data/test/unit/tag_test.rb +0 -11
  261. data/test/unit/tagging_test.rb +0 -6
  262. data/test/unit/user_test.rb +0 -46
@@ -1,130 +0,0 @@
1
- class ActiveSupport::TestCase
2
-
3
- TMP_VIEW_PATH =
4
- File.expand_path(File.join(File.dirname(__FILE__), 'rails2_root', 'tmp', 'views')).freeze
5
-
6
- def create_table(table_name, &block)
7
- connection = ActiveRecord::Base.connection
8
-
9
- begin
10
- connection.execute("DROP TABLE IF EXISTS #{table_name}")
11
- connection.create_table(table_name, &block)
12
- @created_tables ||= []
13
- @created_tables << table_name
14
- connection
15
- rescue Exception => e
16
- connection.execute("DROP TABLE IF EXISTS #{table_name}")
17
- raise e
18
- end
19
- end
20
-
21
- def define_constant(class_name, base, &block)
22
- class_name = class_name.to_s.camelize
23
-
24
- klass = Class.new(base)
25
- Object.const_set(class_name, klass)
26
-
27
- klass.class_eval(&block) if block_given?
28
-
29
- @defined_constants ||= []
30
- @defined_constants << class_name
31
-
32
- klass
33
- end
34
-
35
- def define_model_class(class_name, &block)
36
- define_constant(class_name, ActiveRecord::Base, &block)
37
- end
38
-
39
- def define_model(name, columns = {}, &block)
40
- class_name = name.to_s.pluralize.classify
41
- table_name = class_name.tableize
42
-
43
- create_table(table_name) do |table|
44
- columns.each do |name, type|
45
- table.column name, type
46
- end
47
- end
48
-
49
- define_model_class(class_name, &block)
50
- end
51
-
52
- def define_mailer(name, paths, &block)
53
- class_name = name.to_s.pluralize.classify
54
- klass = define_constant(class_name, ActionMailer::Base, &block)
55
-
56
- paths.each {|path| create_view("#{name}/#{path}", "<%= @message %>")}
57
- klass.template_root = TMP_VIEW_PATH
58
- end
59
-
60
- def define_controller(class_name, &block)
61
- class_name = class_name.to_s
62
- class_name << 'Controller' unless class_name =~ /Controller$/
63
- define_constant(class_name, ActionController::Base, &block)
64
- end
65
-
66
- def define_routes(&block)
67
- @replaced_routes = ActionController::Routing::Routes
68
- new_routes = ActionController::Routing::RouteSet.new
69
- silence_warnings do
70
- ActionController::Routing.const_set('Routes', new_routes)
71
- end
72
- new_routes.draw(&block)
73
- end
74
-
75
- def build_response(opts = {}, &block)
76
- action = opts[:action] || 'example'
77
- klass = define_controller('Examples')
78
- block ||= lambda { render :nothing => true }
79
- klass.class_eval { define_method(action, &block) }
80
- define_routes do |map|
81
- map.connect 'examples', :controller => 'examples', :action => action
82
- end
83
-
84
- create_view("examples/#{action}.html.erb", "abc")
85
- klass.view_paths = [TMP_VIEW_PATH]
86
-
87
- @controller = klass.new
88
- @request = ActionController::TestRequest.new
89
- @response = ActionController::TestResponse.new
90
- get action
91
-
92
- @controller
93
- end
94
-
95
- def create_view(path, contents)
96
- full_path = File.join(TMP_VIEW_PATH, path)
97
- FileUtils.mkdir_p(File.dirname(full_path))
98
- File.open(full_path, 'w') { |file| file.write(contents) }
99
- end
100
-
101
- def teardown_with_models
102
- if @defined_constants
103
- @defined_constants.each do |class_name|
104
- Object.send(:remove_const, class_name)
105
- end
106
- end
107
-
108
- if @created_tables
109
- @created_tables.each do |table_name|
110
- ActiveRecord::Base.
111
- connection.
112
- execute("DROP TABLE IF EXISTS #{table_name}")
113
- end
114
- end
115
-
116
- if @replaced_routes
117
- ActionController::Routing::Routes.clear!
118
- silence_warnings do
119
- ActionController::Routing.const_set('Routes', @replaced_routes)
120
- end
121
- @replaced_routes.reload!
122
- end
123
-
124
- FileUtils.rm_rf(TMP_VIEW_PATH)
125
-
126
- teardown_without_models
127
- end
128
- alias_method :teardown_without_models, :teardown
129
- alias_method :teardown, :teardown_with_models
130
- end
@@ -1,22 +0,0 @@
1
- # Filters added to this controller apply to all controllers in the application.
2
- # Likewise, all the methods added will be available for all controllers.
3
-
4
- class ApplicationController < ActionController::Base
5
- def ensure_logged_in
6
- unless session[:logged_in]
7
- respond_to do |accepts|
8
- accepts.html do
9
- flash[:error] = 'What do you think you\'re doing?'
10
- redirect_to '/'
11
- end
12
- accepts.xml do
13
- headers["Status"] = "Unauthorized"
14
- headers["WWW-Authenticate"] = %(Basic realm="Web Password")
15
- render :text => "Couldn't authenticate you", :status => '401 Unauthorized'
16
- end
17
- end
18
- return false
19
- end
20
- return true
21
- end
22
- end
@@ -1,87 +0,0 @@
1
- class PostsController < ApplicationController
2
- before_filter :ensure_logged_in
3
- before_filter :load_user
4
-
5
- def index
6
- @posts = @user.posts
7
-
8
- respond_to do |format|
9
- format.html # index.rhtml
10
- format.xml { render :xml => @posts.to_xml }
11
- format.rss do
12
- headers['Content-Type'] = 'application/rss+xml'
13
- session[:special] = '$2 off your next purchase'
14
- session[:special_user_id] = @user.id
15
- session[:false_var] = false
16
- head :ok
17
- end
18
- end
19
- end
20
-
21
- def show
22
- @post = @user.posts.find(params[:id])
23
- @false_flag = false
24
-
25
- respond_to do |format|
26
- format.html { render :layout => 'wide' }
27
- format.xml { render :xml => @post.to_xml }
28
- end
29
- end
30
-
31
- def new
32
- @post = @user.posts.build
33
- render :layout => false
34
- end
35
-
36
- def edit
37
- @post = @user.posts.find(params[:id])
38
- end
39
-
40
- def create
41
- @post = @user.posts.build(params[:post])
42
-
43
- respond_to do |format|
44
- if @post.save
45
- flash[:notice] = 'Post was successfully created.'
46
- format.html { redirect_to user_post_url(@post.user, @post) }
47
- format.xml { head :created, :location => user_post_url(@post.user, @post) }
48
- else
49
- format.html { render :action => "new" }
50
- format.xml { render :xml => @post.errors.to_xml }
51
- end
52
- end
53
- end
54
-
55
- def update
56
- @post = @user.posts.find(params[:id])
57
-
58
- respond_to do |format|
59
- if @post.update_attributes(params[:post])
60
- flash[:notice] = 'Post was successfully updated.'
61
- format.html { redirect_to user_post_url(@post.user, @post) }
62
- format.xml { head :ok }
63
- else
64
- format.html { render :action => "edit" }
65
- format.xml { render :xml => @post.errors.to_xml }
66
- end
67
- end
68
- end
69
-
70
- def destroy
71
- @post = @user.posts.find(params[:id])
72
- @post.destroy
73
-
74
- flash[:notice] = "Post was removed"
75
-
76
- respond_to do |format|
77
- format.html { redirect_to user_posts_url(@post.user) }
78
- format.xml { head :ok }
79
- end
80
- end
81
-
82
- private
83
-
84
- def load_user
85
- @user = User.find(params[:user_id])
86
- end
87
- end
@@ -1,84 +0,0 @@
1
- class UsersController < ApplicationController
2
-
3
- filter_parameter_logging :ssn
4
-
5
- # GET /users
6
- # GET /users.xml
7
- def index
8
- @users = User.find(:all)
9
-
10
- respond_to do |format|
11
- format.html # index.rhtml
12
- format.xml { render :xml => @users.to_xml }
13
- end
14
- end
15
-
16
- # GET /users/1
17
- # GET /users/1.xml
18
- def show
19
- @user = User.find(params[:id])
20
-
21
- respond_to do |format|
22
- format.html # show.rhtml
23
- format.xml { render :xml => @user.to_xml }
24
- end
25
- end
26
-
27
- # GET /users/new
28
- def new
29
- @user = User.new
30
- end
31
-
32
- # GET /users/1;edit
33
- def edit
34
- @user = User.find(params[:id])
35
- end
36
-
37
- # POST /users
38
- # POST /users.xml
39
- def create
40
- @user = User.new(params[:user])
41
-
42
- respond_to do |format|
43
- if @user.save
44
- flash[:notice] = 'User was successfully created.'
45
- format.html { redirect_to user_url(@user) }
46
- format.xml { head :created, :location => user_url(@user) }
47
- else
48
- format.html { render :action => "new" }
49
- format.xml { render :xml => @user.errors.to_xml }
50
- end
51
- end
52
- end
53
-
54
- # PUT /users/1
55
- # PUT /users/1.xml
56
- def update
57
- @user = User.find(params[:id])
58
-
59
- respond_to do |format|
60
- if @user.update_attributes(params[:user])
61
- flash[:notice] = 'User was successfully updated.'
62
- format.html { redirect_to user_url(@user) }
63
- format.xml { head :ok }
64
- else
65
- format.html { render :action => "edit" }
66
- format.xml { render :xml => @user.errors.to_xml }
67
- end
68
- end
69
- end
70
-
71
- # DELETE /users/1
72
- # DELETE /users/1.xml
73
- def destroy
74
- @user = User.find(params[:id])
75
- @user.destroy
76
-
77
- flash[:notice] = "User was removed"
78
-
79
- respond_to do |format|
80
- format.html { redirect_to users_url }
81
- format.xml { head :ok }
82
- end
83
- end
84
- end
@@ -1,3 +0,0 @@
1
- # Methods added to this helper will be available to all templates in the application.
2
- module ApplicationHelper
3
- end
@@ -1,2 +0,0 @@
1
- module PostsHelper
2
- end
@@ -1,2 +0,0 @@
1
- module UsersHelper
2
- end
@@ -1,7 +0,0 @@
1
- class Address < ActiveRecord::Base
2
- belongs_to :addressable, :polymorphic => true
3
- validates_uniqueness_of :title, :scope => [:addressable_type, :addressable_id]
4
-
5
- validates_length_of :zip, :minimum => 5
6
- validates_numericality_of :zip
7
- end
@@ -1,11 +0,0 @@
1
- class Flea < ActiveRecord::Base
2
- has_and_belongs_to_many :dogs
3
-
4
- after_create :send_notification
5
-
6
- private
7
-
8
- def send_notification
9
- Notifier.deliver_the_email
10
- end
11
- end
@@ -1,4 +0,0 @@
1
- class Friendship < ActiveRecord::Base
2
- belongs_to :user
3
- belongs_to :friend, :class_name => "User"
4
- end
@@ -1,8 +0,0 @@
1
- class Notifier < ActionMailer::Base
2
- def the_email
3
- from "do-not-reply@example.com"
4
- recipients "myself@me.com"
5
- subject "This is spam"
6
- body :body => "Every email is spam."
7
- end
8
- end
@@ -1,7 +0,0 @@
1
- module Pets
2
- class Cat < ActiveRecord::Base
3
- belongs_to :owner, :class_name => 'User'
4
- belongs_to :address, :dependent => :destroy
5
- validates_presence_of :owner_id
6
- end
7
- end
@@ -1,10 +0,0 @@
1
- module Pets
2
- class Dog < ActiveRecord::Base
3
- belongs_to :user, :foreign_key => :owner_id
4
- belongs_to :address, :dependent => :destroy
5
- has_many :treats
6
- has_and_belongs_to_many :fleas, :join_table => :fleas
7
- validates_presence_of :treats, :fleas
8
- validates_presence_of :owner_id
9
- end
10
- end
@@ -1,12 +0,0 @@
1
- class Post < ActiveRecord::Base
2
- belongs_to :user
3
- belongs_to :owner, :foreign_key => :user_id, :class_name => 'User'
4
- has_many :taggings
5
- has_many :tags, :through => :taggings
6
- has_many :through_tags, :through => :taggings, :source => :tag
7
-
8
- validates_uniqueness_of :title
9
- validates_presence_of :title
10
- validates_presence_of :body, :message => 'Seriously, wtf'
11
- validates_numericality_of :user_id
12
- end
@@ -1,12 +0,0 @@
1
- class Product < ActiveRecord::Base
2
- validates_presence_of :title
3
-
4
- validates_inclusion_of :price, :in => 0..99, :unless => :tangible
5
- validates_format_of :size, :with => /^\d+\D+$/, :unless => :tangible
6
-
7
- validates_presence_of :price, :if => :tangible
8
- validates_inclusion_of :price, :in => 1..9999, :if => :tangible
9
- validates_inclusion_of :weight, :in => 1..100, :if => :tangible
10
- validates_format_of :size, :with => /.+x.+x.+/, :if => :tangible
11
- validates_length_of :size, :in => 5..20, :if => :tangible
12
- end
@@ -1,2 +0,0 @@
1
- class Profile < ActiveRecord::Base
2
- end
@@ -1,2 +0,0 @@
1
- class Registration < ActiveRecord::Base
2
- end
@@ -1,8 +0,0 @@
1
- class Tag < ActiveRecord::Base
2
- has_many :taggings, :dependent => :destroy
3
- has_many :posts, :through => :taggings
4
-
5
- validates_length_of :name, :minimum => 2
6
-
7
- attr_accessible :name
8
- end
@@ -1,4 +0,0 @@
1
- class Tagging < ActiveRecord::Base
2
- belongs_to :post
3
- belongs_to :tag
4
- end