resource_controller 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. data/LICENSE +22 -0
  2. data/README +282 -0
  3. data/README.rdoc +282 -0
  4. data/Rakefile +35 -0
  5. data/generators/scaffold_resource/USAGE +29 -0
  6. data/generators/scaffold_resource/scaffold_resource_generator.rb +179 -0
  7. data/generators/scaffold_resource/templates/controller.rb +2 -0
  8. data/generators/scaffold_resource/templates/fixtures.yml +10 -0
  9. data/generators/scaffold_resource/templates/functional_test.rb +57 -0
  10. data/generators/scaffold_resource/templates/helper.rb +2 -0
  11. data/generators/scaffold_resource/templates/migration.rb +15 -0
  12. data/generators/scaffold_resource/templates/model.rb +2 -0
  13. data/generators/scaffold_resource/templates/old_migration.rb +13 -0
  14. data/generators/scaffold_resource/templates/rspec/functional_spec.rb +255 -0
  15. data/generators/scaffold_resource/templates/rspec/helper_spec.rb +11 -0
  16. data/generators/scaffold_resource/templates/rspec/routing_spec.rb +61 -0
  17. data/generators/scaffold_resource/templates/rspec/unit_spec.rb +11 -0
  18. data/generators/scaffold_resource/templates/rspec/views/edit_spec.rb +28 -0
  19. data/generators/scaffold_resource/templates/rspec/views/index_spec.rb +26 -0
  20. data/generators/scaffold_resource/templates/rspec/views/new_spec.rb +30 -0
  21. data/generators/scaffold_resource/templates/rspec/views/show_spec.rb +25 -0
  22. data/generators/scaffold_resource/templates/shoulda_functional_test.rb +19 -0
  23. data/generators/scaffold_resource/templates/unit_test.rb +7 -0
  24. data/generators/scaffold_resource/templates/view__form.erb +6 -0
  25. data/generators/scaffold_resource/templates/view__form.haml +5 -0
  26. data/generators/scaffold_resource/templates/view_edit.erb +16 -0
  27. data/generators/scaffold_resource/templates/view_edit.haml +11 -0
  28. data/generators/scaffold_resource/templates/view_index.erb +22 -0
  29. data/generators/scaffold_resource/templates/view_index.haml +19 -0
  30. data/generators/scaffold_resource/templates/view_new.erb +12 -0
  31. data/generators/scaffold_resource/templates/view_new.haml +9 -0
  32. data/generators/scaffold_resource/templates/view_show.erb +9 -0
  33. data/generators/scaffold_resource/templates/view_show.haml +9 -0
  34. data/init.rb +1 -0
  35. data/lib/resource_controller.rb +15 -0
  36. data/lib/resource_controller/accessors.rb +77 -0
  37. data/lib/resource_controller/action_options.rb +40 -0
  38. data/lib/resource_controller/actions.rb +75 -0
  39. data/lib/resource_controller/base.rb +15 -0
  40. data/lib/resource_controller/class_methods.rb +22 -0
  41. data/lib/resource_controller/controller.rb +63 -0
  42. data/lib/resource_controller/failable_action_options.rb +25 -0
  43. data/lib/resource_controller/helpers.rb +28 -0
  44. data/lib/resource_controller/helpers/current_objects.rb +69 -0
  45. data/lib/resource_controller/helpers/internal.rb +76 -0
  46. data/lib/resource_controller/helpers/nested.rb +45 -0
  47. data/lib/resource_controller/helpers/urls.rb +124 -0
  48. data/lib/resource_controller/response_collector.rb +27 -0
  49. data/lib/resource_controller/version.rb +9 -0
  50. data/lib/tasks/gem.rake +67 -0
  51. data/lib/urligence.rb +50 -0
  52. data/rails/init.rb +6 -0
  53. data/test/Rakefile +10 -0
  54. data/test/app/controllers/application.rb +7 -0
  55. data/test/app/controllers/cms/options_controller.rb +3 -0
  56. data/test/app/controllers/cms/products_controller.rb +3 -0
  57. data/test/app/controllers/comments_controller.rb +3 -0
  58. data/test/app/controllers/people_controller.rb +9 -0
  59. data/test/app/controllers/photos_controller.rb +11 -0
  60. data/test/app/controllers/posts_controller.rb +10 -0
  61. data/test/app/controllers/projects_controller.rb +3 -0
  62. data/test/app/controllers/somethings_controller.rb +3 -0
  63. data/test/app/controllers/tags_controller.rb +13 -0
  64. data/test/app/controllers/users_controller.rb +12 -0
  65. data/test/app/helpers/application_helper.rb +3 -0
  66. data/test/app/helpers/cms/products_helper.rb +2 -0
  67. data/test/app/helpers/comments_helper.rb +2 -0
  68. data/test/app/helpers/options_helper.rb +2 -0
  69. data/test/app/helpers/people_helper.rb +2 -0
  70. data/test/app/helpers/photos_helper.rb +2 -0
  71. data/test/app/helpers/posts_helper.rb +2 -0
  72. data/test/app/helpers/projects_helper.rb +2 -0
  73. data/test/app/helpers/somethings_helper.rb +2 -0
  74. data/test/app/helpers/tags_helper.rb +2 -0
  75. data/test/app/helpers/users_helper.rb +2 -0
  76. data/test/app/models/account.rb +3 -0
  77. data/test/app/models/comment.rb +3 -0
  78. data/test/app/models/option.rb +3 -0
  79. data/test/app/models/photo.rb +4 -0
  80. data/test/app/models/post.rb +3 -0
  81. data/test/app/models/product.rb +3 -0
  82. data/test/app/models/project.rb +2 -0
  83. data/test/app/models/something.rb +2 -0
  84. data/test/app/models/tag.rb +3 -0
  85. data/test/app/views/cms/options/edit.rhtml +17 -0
  86. data/test/app/views/cms/options/index.rhtml +20 -0
  87. data/test/app/views/cms/options/new.rhtml +16 -0
  88. data/test/app/views/cms/options/show.rhtml +8 -0
  89. data/test/app/views/cms/products/edit.rhtml +17 -0
  90. data/test/app/views/cms/products/index.rhtml +20 -0
  91. data/test/app/views/cms/products/new.rhtml +16 -0
  92. data/test/app/views/cms/products/show.rhtml +8 -0
  93. data/test/app/views/comments/edit.rhtml +27 -0
  94. data/test/app/views/comments/index.rhtml +24 -0
  95. data/test/app/views/comments/new.rhtml +26 -0
  96. data/test/app/views/comments/show.rhtml +18 -0
  97. data/test/app/views/layouts/application.rhtml +17 -0
  98. data/test/app/views/layouts/comments.rhtml +17 -0
  99. data/test/app/views/layouts/options.rhtml +17 -0
  100. data/test/app/views/layouts/people.rhtml +17 -0
  101. data/test/app/views/layouts/photos.rhtml +17 -0
  102. data/test/app/views/layouts/projects.rhtml +17 -0
  103. data/test/app/views/layouts/somethings.rhtml +17 -0
  104. data/test/app/views/layouts/tags.rhtml +17 -0
  105. data/test/app/views/people/edit.rhtml +17 -0
  106. data/test/app/views/people/index.rhtml +20 -0
  107. data/test/app/views/people/new.rhtml +16 -0
  108. data/test/app/views/people/show.rhtml +8 -0
  109. data/test/app/views/photos/edit.rhtml +17 -0
  110. data/test/app/views/photos/index.rhtml +20 -0
  111. data/test/app/views/photos/new.rhtml +16 -0
  112. data/test/app/views/photos/show.rhtml +8 -0
  113. data/test/app/views/posts/edit.rhtml +22 -0
  114. data/test/app/views/posts/index.rhtml +22 -0
  115. data/test/app/views/posts/new.rhtml +21 -0
  116. data/test/app/views/posts/show.rhtml +13 -0
  117. data/test/app/views/projects/edit.rhtml +17 -0
  118. data/test/app/views/projects/index.rhtml +20 -0
  119. data/test/app/views/projects/new.rhtml +16 -0
  120. data/test/app/views/projects/show.rhtml +8 -0
  121. data/test/app/views/somethings/edit.rhtml +17 -0
  122. data/test/app/views/somethings/index.rhtml +20 -0
  123. data/test/app/views/somethings/new.rhtml +16 -0
  124. data/test/app/views/somethings/show.rhtml +8 -0
  125. data/test/app/views/tags/edit.rhtml +17 -0
  126. data/test/app/views/tags/index.rhtml +20 -0
  127. data/test/app/views/tags/index.rjs +0 -0
  128. data/test/app/views/tags/new.rhtml +16 -0
  129. data/test/app/views/tags/show.rhtml +8 -0
  130. data/test/app/views/users/edit.rhtml +17 -0
  131. data/test/app/views/users/index.rhtml +20 -0
  132. data/test/app/views/users/new.rhtml +16 -0
  133. data/test/app/views/users/show.rhtml +8 -0
  134. data/test/config/boot.rb +109 -0
  135. data/test/config/database.yml +16 -0
  136. data/test/config/environment.rb +64 -0
  137. data/test/config/environments/development.rb +21 -0
  138. data/test/config/environments/test.rb +19 -0
  139. data/test/config/routes.rb +51 -0
  140. data/test/db/migrate/001_create_posts.rb +12 -0
  141. data/test/db/migrate/002_create_products.rb +11 -0
  142. data/test/db/migrate/003_create_comments.rb +13 -0
  143. data/test/db/migrate/004_create_options.rb +12 -0
  144. data/test/db/migrate/005_create_photos.rb +11 -0
  145. data/test/db/migrate/006_create_tags.rb +17 -0
  146. data/test/db/migrate/007_create_somethings.rb +11 -0
  147. data/test/db/migrate/008_create_accounts.rb +11 -0
  148. data/test/db/migrate/009_add_account_id_to_photos.rb +9 -0
  149. data/test/db/migrate/010_create_projects.rb +11 -0
  150. data/test/db/schema.rb +65 -0
  151. data/test/log/development.log +2918 -0
  152. data/test/log/test.log +135619 -0
  153. data/test/log/thin.log +12 -0
  154. data/test/script/console +3 -0
  155. data/test/script/destroy +3 -0
  156. data/test/script/generate +3 -0
  157. data/test/script/server +3 -0
  158. data/test/test/fixtures/accounts.yml +7 -0
  159. data/test/test/fixtures/comments.yml +11 -0
  160. data/test/test/fixtures/options.yml +9 -0
  161. data/test/test/fixtures/photos.yml +9 -0
  162. data/test/test/fixtures/photos_tags.yml +3 -0
  163. data/test/test/fixtures/posts.yml +9 -0
  164. data/test/test/fixtures/products.yml +7 -0
  165. data/test/test/fixtures/projects.yml +7 -0
  166. data/test/test/fixtures/somethings.yml +7 -0
  167. data/test/test/fixtures/tags.yml +7 -0
  168. data/test/test/functional/cms/options_controller_test.rb +23 -0
  169. data/test/test/functional/cms/products_controller_test.rb +23 -0
  170. data/test/test/functional/comments_controller_test.rb +26 -0
  171. data/test/test/functional/people_controller_test.rb +34 -0
  172. data/test/test/functional/photos_controller_test.rb +130 -0
  173. data/test/test/functional/posts_controller_test.rb +34 -0
  174. data/test/test/functional/projects_controller_test.rb +18 -0
  175. data/test/test/functional/somethings_controller_test.rb +28 -0
  176. data/test/test/functional/tags_controller_test.rb +64 -0
  177. data/test/test/functional/users_controller_test.rb +24 -0
  178. data/test/test/test_helper.rb +12 -0
  179. data/test/test/unit/accessors_test.rb +110 -0
  180. data/test/test/unit/account_test.rb +7 -0
  181. data/test/test/unit/action_options_test.rb +109 -0
  182. data/test/test/unit/base_test.rb +11 -0
  183. data/test/test/unit/comment_test.rb +10 -0
  184. data/test/test/unit/failable_action_options_test.rb +77 -0
  185. data/test/test/unit/helpers/current_objects_test.rb +127 -0
  186. data/test/test/unit/helpers/internal_test.rb +106 -0
  187. data/test/test/unit/helpers/nested_test.rb +82 -0
  188. data/test/test/unit/helpers/urls_test.rb +71 -0
  189. data/test/test/unit/helpers_test.rb +25 -0
  190. data/test/test/unit/option_test.rb +10 -0
  191. data/test/test/unit/photo_test.rb +10 -0
  192. data/test/test/unit/post_test.rb +10 -0
  193. data/test/test/unit/project_test.rb +10 -0
  194. data/test/test/unit/response_collector_test.rb +49 -0
  195. data/test/test/unit/something_test.rb +10 -0
  196. data/test/test/unit/tag_test.rb +10 -0
  197. data/test/test/unit/urligence_test.rb +203 -0
  198. data/test/vendor/plugins/shoulda/Rakefile +32 -0
  199. data/test/vendor/plugins/shoulda/bin/convert_to_should_syntax +40 -0
  200. data/test/vendor/plugins/shoulda/init.rb +3 -0
  201. data/test/vendor/plugins/shoulda/lib/shoulda.rb +43 -0
  202. data/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +580 -0
  203. data/test/vendor/plugins/shoulda/lib/shoulda/color.rb +77 -0
  204. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/controller_tests.rb +467 -0
  205. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/html.rb +201 -0
  206. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/xml.rb +170 -0
  207. data/test/vendor/plugins/shoulda/lib/shoulda/gem/proc_extensions.rb +14 -0
  208. data/test/vendor/plugins/shoulda/lib/shoulda/gem/shoulda.rb +239 -0
  209. data/test/vendor/plugins/shoulda/lib/shoulda/general.rb +118 -0
  210. data/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +22 -0
  211. metadata +312 -0
@@ -0,0 +1,20 @@
1
+ <h1>Listing people</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ </tr>
7
+
8
+ <% for dude in @dudes %>
9
+ <tr>
10
+ <td><%=h dude.name %></td>
11
+ <td><%= link_to 'Show', object_url(dude) %></td>
12
+ <td><%= link_to 'Edit', edit_object_url(dude) %></td>
13
+ <td><%= link_to 'Destroy', object_url(dude), :confirm => 'Are you sure?', :method => :delete %></td>
14
+ </tr>
15
+ <% end %>
16
+ </table>
17
+
18
+ <br />
19
+
20
+ <%= link_to 'New dude', new_object_url %>
@@ -0,0 +1,16 @@
1
+ <h1>New dude</h1>
2
+
3
+ <%= error_messages_for :dude %>
4
+
5
+ <% form_for(:dude, :url => collection_url) do |f| %>
6
+ <p>
7
+ <b>Name</b><br />
8
+ <%= f.text_field :name %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= submit_tag "Create" %>
13
+ </p>
14
+ <% end %>
15
+
16
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,8 @@
1
+ <p>
2
+ <b>Name:</b>
3
+ <%=h @dude.name %>
4
+ </p>
5
+
6
+
7
+ <%= link_to 'Edit', edit_object_url %> |
8
+ <%= link_to 'Back', people_path %>
@@ -0,0 +1,109 @@
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
3
+
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exist?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
34
+ end
35
+
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+ Rails::Initializer.run(:set_load_path)
40
+ end
41
+ end
42
+
43
+ class VendorBoot < Boot
44
+ def load_initializer
45
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
+ Rails::Initializer.run(:install_gem_spec_stubs)
47
+ end
48
+ end
49
+
50
+ class GemBoot < Boot
51
+ def load_initializer
52
+ self.class.load_rubygems
53
+ load_rails_gem
54
+ require 'initializer'
55
+ end
56
+
57
+ def load_rails_gem
58
+ if version = self.class.gem_version
59
+ gem 'rails', version
60
+ else
61
+ gem 'rails'
62
+ end
63
+ rescue Gem::LoadError => load_error
64
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
65
+ exit 1
66
+ end
67
+
68
+ class << self
69
+ def rubygems_version
70
+ Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
71
+ end
72
+
73
+ def gem_version
74
+ if defined? RAILS_GEM_VERSION
75
+ RAILS_GEM_VERSION
76
+ elsif ENV.include?('RAILS_GEM_VERSION')
77
+ ENV['RAILS_GEM_VERSION']
78
+ else
79
+ parse_gem_version(read_environment_rb)
80
+ end
81
+ end
82
+
83
+ def load_rubygems
84
+ require 'rubygems'
85
+
86
+ unless rubygems_version >= '0.9.4'
87
+ $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.)
88
+ exit 1
89
+ end
90
+
91
+ rescue LoadError
92
+ $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org)
93
+ exit 1
94
+ end
95
+
96
+ def parse_gem_version(text)
97
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
98
+ end
99
+
100
+ private
101
+ def read_environment_rb
102
+ File.read("#{RAILS_ROOT}/config/environment.rb")
103
+ end
104
+ end
105
+ end
106
+ end
107
+
108
+ # All that for this:
109
+ Rails.boot!
@@ -0,0 +1,16 @@
1
+ development:
2
+ adapter: mysql
3
+ database: resource_controller_test
4
+ username: root
5
+ password:
6
+ socket: /tmp/mysql.sock
7
+
8
+ # Warning: The database defined as 'test' will be erased and
9
+ # re-generated from your development database when you run 'rake'.
10
+ # Do not set this db to the same as development or production.
11
+ test:
12
+ adapter: mysql
13
+ database: resource_controller_test
14
+ username: root
15
+ password:
16
+ socket: /tmp/mysql.sock
@@ -0,0 +1,64 @@
1
+ # Be sure to restart your web server when you modify this file.
2
+
3
+ # Uncomment below to force Rails into production mode when
4
+ # you don't control web/app server and can't set it the proper way
5
+ # ENV['RAILS_ENV'] ||= 'production'
6
+
7
+ # Specifies gem version of Rails to use when vendor/rails is not present
8
+ RAILS_GEM_VERSION = '2.1' unless defined? RAILS_GEM_VERSION
9
+
10
+ # Bootstrap the Rails environment, frameworks, and default configuration
11
+ require File.join(File.dirname(__FILE__), 'boot')
12
+
13
+ Rails::Initializer.run do |config|
14
+ # Settings in config/environments/* take precedence over those specified here
15
+
16
+ # Skip frameworks you're not going to use (only works if using vendor/rails)
17
+ # config.frameworks -= [ :action_web_service, :action_mailer ]
18
+
19
+ # Only load the plugins named here, by default all plugins in vendor/plugins are loaded
20
+ # config.plugins = %W( exception_notification ssl_requirement )
21
+
22
+ # Add additional load paths for your own custom dirs
23
+ config.load_paths += %W( #{RAILS_ROOT}/../lib )
24
+
25
+ # Force all environments to use the same logger level
26
+ # (by default production uses :info, the others :debug)
27
+ # config.log_level = :debug
28
+
29
+ # Use the database for sessions instead of the file system
30
+ # (create the session table with 'rake db:sessions:create')
31
+ # config.action_controller.session_store = :active_record_store
32
+
33
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
34
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
35
+ # like if you have constraints or database-specific column types
36
+ # config.active_record.schema_format = :sql
37
+
38
+ # Activate observers that should always be running
39
+ # config.active_record.observers = :cacher, :garbage_collector
40
+
41
+ # Make Active Record use UTC-base instead of local time
42
+ # config.active_record.default_timezone = :utc
43
+
44
+ # See Rails::Configuration for more options
45
+
46
+ config.action_controller.session = { :session_key => "_myapp_session", :secret => "some secret phrase" }
47
+ end
48
+
49
+ require "#{RAILS_ROOT}/../init"
50
+
51
+ # Add new inflection rules using the following format
52
+ # (all these examples are active by default):
53
+ # Inflector.inflections do |inflect|
54
+ # inflect.plural /^(ox)$/i, '\1en'
55
+ # inflect.singular /^(ox)en/i, '\1'
56
+ # inflect.irregular 'person', 'people'
57
+ # inflect.uncountable %w( fish sheep )
58
+ # end
59
+
60
+ # Add new mime types for use in respond_to blocks:
61
+ # Mime::Type.register "text/richtext", :rtf
62
+ # Mime::Type.register "application/x-mobile", :mobile
63
+
64
+ # Include your application configuration below
@@ -0,0 +1,21 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # In the development environment your application's code is reloaded on
4
+ # every request. This slows down response time but is perfect for development
5
+ # since you don't have to restart the webserver when you make code changes.
6
+ config.cache_classes = false
7
+
8
+ # Log error messages when you accidentally call methods on nil.
9
+ config.whiny_nils = true
10
+
11
+ # Enable the breakpoint server that script/breakpointer connects to
12
+ config.breakpoint_server = true
13
+
14
+ # Show full error reports and disable caching
15
+ config.action_controller.consider_all_requests_local = true
16
+ config.action_controller.perform_caching = false
17
+ config.action_view.cache_template_extensions = false
18
+ config.action_view.debug_rjs = true
19
+
20
+ # Don't care if the mailer can't send
21
+ config.action_mailer.raise_delivery_errors = false
@@ -0,0 +1,19 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # The test environment is used exclusively to run your application's
4
+ # test suite. You never need to work with it otherwise. Remember that
5
+ # your test database is "scratch space" for the test suite and is wiped
6
+ # and recreated between test runs. Don't rely on the data there!
7
+ config.cache_classes = true
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.action_controller.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Tell ActionMailer not to deliver emails to the real world.
17
+ # The :test delivery method accumulates sent emails in the
18
+ # ActionMailer::Base.deliveries array.
19
+ config.action_mailer.delivery_method = :test
@@ -0,0 +1,51 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.resources :projects
3
+
4
+ map.resources :people
5
+
6
+ map.resources :dudes, :controller => "users"
7
+
8
+ map.resources :users do |user|
9
+ user.resources :photos, :name_prefix => "user_"
10
+ end
11
+
12
+ map.resources :somethings
13
+
14
+ map.resources :photos do |photo|
15
+ photo.resources :tags, :name_prefix => "photo_"
16
+ end
17
+
18
+ map.resources :tags
19
+
20
+ map.namespace :cms do |cms|
21
+ cms.resources :products, :has_many => :options
22
+ end
23
+
24
+ map.resources :posts do |post|
25
+ post.resources :comments, :name_prefix => "post_"
26
+ end
27
+
28
+ map.resources :comments
29
+
30
+ # The priority is based upon order of creation: first created -> highest priority.
31
+
32
+ # Sample of regular route:
33
+ # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
34
+ # Keep in mind you can assign values other than :controller and :action
35
+
36
+ # Sample of named route:
37
+ # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
38
+ # This route can be invoked with purchase_url(:id => product.id)
39
+
40
+ # You can have the root of your site routed by hooking up ''
41
+ # -- just remember to delete public/index.html.
42
+ # map.connect '', :controller => "welcome"
43
+
44
+ # Allow downloading Web Service WSDL as a file with an extension
45
+ # instead of a file named 'wsdl'
46
+ map.connect ':controller/service.wsdl', :action => 'wsdl'
47
+
48
+ # Install the default route as the lowest priority.
49
+ map.connect ':controller/:action/:id.:format'
50
+ map.connect ':controller/:action/:id'
51
+ end
@@ -0,0 +1,12 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :posts do |t|
4
+ t.column :title, :string, :default => ''
5
+ t.column :body, :text, :default => ''
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :posts
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class CreateProducts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :products do |t|
4
+ t.column :name, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :cms_products
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ class CreateComments < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :comments do |t|
4
+ t.column :post_id, :integer
5
+ t.column :author, :string
6
+ t.column :body, :text
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ drop_table :comments
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class CreateOptions < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :options do |t|
4
+ t.column :product_id, :integer
5
+ t.column :title, :string
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :options
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class CreatePhotos < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :photos do |t|
4
+ t.column :title, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :photos
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ class CreateTags < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :tags do |t|
4
+ t.column :name, :string
5
+ end
6
+
7
+ create_table :photos_tags, :id => :false do |t|
8
+ t.column :photo_id, :integer
9
+ t.column :tag_id, :integer
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :tags
15
+ drop_table :photos_tags
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSomethings < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :somethings do |t|
4
+ t.column :title, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :somethings
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateAccounts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :accounts do |t|
4
+ t.column :name, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :accounts
10
+ end
11
+ end