rails 4.1.4 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +55 -34
  3. metadata +93 -311
  4. data/guides/CHANGELOG.md +0 -41
  5. data/guides/Rakefile +0 -77
  6. data/guides/assets/images/akshaysurve.jpg +0 -0
  7. data/guides/assets/images/belongs_to.png +0 -0
  8. data/guides/assets/images/book_icon.gif +0 -0
  9. data/guides/assets/images/bullet.gif +0 -0
  10. data/guides/assets/images/chapters_icon.gif +0 -0
  11. data/guides/assets/images/check_bullet.gif +0 -0
  12. data/guides/assets/images/credits_pic_blank.gif +0 -0
  13. data/guides/assets/images/csrf.png +0 -0
  14. data/guides/assets/images/edge_badge.png +0 -0
  15. data/guides/assets/images/favicon.ico +0 -0
  16. data/guides/assets/images/feature_tile.gif +0 -0
  17. data/guides/assets/images/footer_tile.gif +0 -0
  18. data/guides/assets/images/fxn.png +0 -0
  19. data/guides/assets/images/getting_started/article_with_comments.png +0 -0
  20. data/guides/assets/images/getting_started/challenge.png +0 -0
  21. data/guides/assets/images/getting_started/confirm_dialog.png +0 -0
  22. data/guides/assets/images/getting_started/forbidden_attributes_for_new_article.png +0 -0
  23. data/guides/assets/images/getting_started/form_with_errors.png +0 -0
  24. data/guides/assets/images/getting_started/index_action_with_edit_link.png +0 -0
  25. data/guides/assets/images/getting_started/new_article.png +0 -0
  26. data/guides/assets/images/getting_started/rails_welcome.png +0 -0
  27. data/guides/assets/images/getting_started/routing_error_no_controller.png +0 -0
  28. data/guides/assets/images/getting_started/routing_error_no_route_matches.png +0 -0
  29. data/guides/assets/images/getting_started/show_action_for_articles.png +0 -0
  30. data/guides/assets/images/getting_started/template_is_missing_articles_new.png +0 -0
  31. data/guides/assets/images/getting_started/unknown_action_create_for_articles.png +0 -0
  32. data/guides/assets/images/getting_started/unknown_action_new_for_articles.png +0 -0
  33. data/guides/assets/images/grey_bullet.gif +0 -0
  34. data/guides/assets/images/habtm.png +0 -0
  35. data/guides/assets/images/has_many.png +0 -0
  36. data/guides/assets/images/has_many_through.png +0 -0
  37. data/guides/assets/images/has_one.png +0 -0
  38. data/guides/assets/images/has_one_through.png +0 -0
  39. data/guides/assets/images/header_backdrop.png +0 -0
  40. data/guides/assets/images/header_tile.gif +0 -0
  41. data/guides/assets/images/i18n/demo_html_safe.png +0 -0
  42. data/guides/assets/images/i18n/demo_localized_pirate.png +0 -0
  43. data/guides/assets/images/i18n/demo_translated_en.png +0 -0
  44. data/guides/assets/images/i18n/demo_translated_pirate.png +0 -0
  45. data/guides/assets/images/i18n/demo_translation_missing.png +0 -0
  46. data/guides/assets/images/i18n/demo_untranslated.png +0 -0
  47. data/guides/assets/images/icons/README +0 -5
  48. data/guides/assets/images/icons/callouts/1.png +0 -0
  49. data/guides/assets/images/icons/callouts/10.png +0 -0
  50. data/guides/assets/images/icons/callouts/11.png +0 -0
  51. data/guides/assets/images/icons/callouts/12.png +0 -0
  52. data/guides/assets/images/icons/callouts/13.png +0 -0
  53. data/guides/assets/images/icons/callouts/14.png +0 -0
  54. data/guides/assets/images/icons/callouts/15.png +0 -0
  55. data/guides/assets/images/icons/callouts/2.png +0 -0
  56. data/guides/assets/images/icons/callouts/3.png +0 -0
  57. data/guides/assets/images/icons/callouts/4.png +0 -0
  58. data/guides/assets/images/icons/callouts/5.png +0 -0
  59. data/guides/assets/images/icons/callouts/6.png +0 -0
  60. data/guides/assets/images/icons/callouts/7.png +0 -0
  61. data/guides/assets/images/icons/callouts/8.png +0 -0
  62. data/guides/assets/images/icons/callouts/9.png +0 -0
  63. data/guides/assets/images/icons/caution.png +0 -0
  64. data/guides/assets/images/icons/example.png +0 -0
  65. data/guides/assets/images/icons/home.png +0 -0
  66. data/guides/assets/images/icons/important.png +0 -0
  67. data/guides/assets/images/icons/next.png +0 -0
  68. data/guides/assets/images/icons/note.png +0 -0
  69. data/guides/assets/images/icons/prev.png +0 -0
  70. data/guides/assets/images/icons/tip.png +0 -0
  71. data/guides/assets/images/icons/up.png +0 -0
  72. data/guides/assets/images/icons/warning.png +0 -0
  73. data/guides/assets/images/nav_arrow.gif +0 -0
  74. data/guides/assets/images/oscardelben.jpg +0 -0
  75. data/guides/assets/images/polymorphic.png +0 -0
  76. data/guides/assets/images/radar.png +0 -0
  77. data/guides/assets/images/rails4_features.png +0 -0
  78. data/guides/assets/images/rails_guides_kindle_cover.jpg +0 -0
  79. data/guides/assets/images/rails_guides_logo.gif +0 -0
  80. data/guides/assets/images/rails_logo_remix.gif +0 -0
  81. data/guides/assets/images/session_fixation.png +0 -0
  82. data/guides/assets/images/tab_grey.gif +0 -0
  83. data/guides/assets/images/tab_info.gif +0 -0
  84. data/guides/assets/images/tab_note.gif +0 -0
  85. data/guides/assets/images/tab_red.gif +0 -0
  86. data/guides/assets/images/tab_yellow.gif +0 -0
  87. data/guides/assets/images/tab_yellow.png +0 -0
  88. data/guides/assets/images/vijaydev.jpg +0 -0
  89. data/guides/assets/javascripts/guides.js +0 -53
  90. data/guides/assets/javascripts/jquery.min.js +0 -4
  91. data/guides/assets/javascripts/responsive-tables.js +0 -43
  92. data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +0 -59
  93. data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +0 -75
  94. data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +0 -59
  95. data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +0 -65
  96. data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +0 -100
  97. data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +0 -97
  98. data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +0 -91
  99. data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +0 -55
  100. data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +0 -41
  101. data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +0 -52
  102. data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +0 -67
  103. data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +0 -52
  104. data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +0 -57
  105. data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +0 -58
  106. data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +0 -72
  107. data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +0 -88
  108. data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +0 -33
  109. data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +0 -74
  110. data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +0 -64
  111. data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +0 -55
  112. data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +0 -94
  113. data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +0 -51
  114. data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +0 -66
  115. data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +0 -56
  116. data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +0 -69
  117. data/guides/assets/javascripts/syntaxhighlighter/shCore.js +0 -17
  118. data/guides/assets/stylesheets/fixes.css +0 -16
  119. data/guides/assets/stylesheets/kindle.css +0 -11
  120. data/guides/assets/stylesheets/main.css +0 -710
  121. data/guides/assets/stylesheets/print.css +0 -52
  122. data/guides/assets/stylesheets/reset.css +0 -43
  123. data/guides/assets/stylesheets/responsive-tables.css +0 -50
  124. data/guides/assets/stylesheets/style.css +0 -13
  125. data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +0 -226
  126. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +0 -328
  127. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +0 -331
  128. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +0 -339
  129. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +0 -324
  130. data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
  131. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +0 -324
  132. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +0 -324
  133. data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +0 -324
  134. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +0 -117
  135. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +0 -120
  136. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +0 -128
  137. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +0 -113
  138. data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
  139. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +0 -113
  140. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +0 -113
  141. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +0 -113
  142. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +0 -116
  143. data/guides/bug_report_templates/action_controller_gem.rb +0 -47
  144. data/guides/bug_report_templates/action_controller_master.rb +0 -53
  145. data/guides/bug_report_templates/active_record_gem.rb +0 -40
  146. data/guides/bug_report_templates/active_record_master.rb +0 -49
  147. data/guides/code/getting_started/Gemfile +0 -40
  148. data/guides/code/getting_started/Gemfile.lock +0 -125
  149. data/guides/code/getting_started/README.rdoc +0 -28
  150. data/guides/code/getting_started/Rakefile +0 -6
  151. data/guides/code/getting_started/app/assets/javascripts/application.js +0 -15
  152. data/guides/code/getting_started/app/assets/javascripts/comments.js.coffee +0 -3
  153. data/guides/code/getting_started/app/assets/javascripts/posts.js.coffee +0 -3
  154. data/guides/code/getting_started/app/assets/javascripts/welcome.js.coffee +0 -3
  155. data/guides/code/getting_started/app/assets/stylesheets/application.css +0 -13
  156. data/guides/code/getting_started/app/assets/stylesheets/comments.css.scss +0 -3
  157. data/guides/code/getting_started/app/assets/stylesheets/posts.css.scss +0 -3
  158. data/guides/code/getting_started/app/assets/stylesheets/welcome.css.scss +0 -3
  159. data/guides/code/getting_started/app/controllers/application_controller.rb +0 -5
  160. data/guides/code/getting_started/app/controllers/comments_controller.rb +0 -23
  161. data/guides/code/getting_started/app/controllers/posts_controller.rb +0 -53
  162. data/guides/code/getting_started/app/controllers/welcome_controller.rb +0 -4
  163. data/guides/code/getting_started/app/helpers/application_helper.rb +0 -2
  164. data/guides/code/getting_started/app/helpers/comments_helper.rb +0 -2
  165. data/guides/code/getting_started/app/helpers/posts_helper.rb +0 -2
  166. data/guides/code/getting_started/app/helpers/welcome_helper.rb +0 -2
  167. data/guides/code/getting_started/app/models/comment.rb +0 -3
  168. data/guides/code/getting_started/app/models/post.rb +0 -7
  169. data/guides/code/getting_started/app/views/comments/_comment.html.erb +0 -15
  170. data/guides/code/getting_started/app/views/comments/_form.html.erb +0 -13
  171. data/guides/code/getting_started/app/views/layouts/application.html.erb +0 -14
  172. data/guides/code/getting_started/app/views/posts/_form.html.erb +0 -27
  173. data/guides/code/getting_started/app/views/posts/edit.html.erb +0 -5
  174. data/guides/code/getting_started/app/views/posts/index.html.erb +0 -21
  175. data/guides/code/getting_started/app/views/posts/new.html.erb +0 -5
  176. data/guides/code/getting_started/app/views/posts/show.html.erb +0 -18
  177. data/guides/code/getting_started/app/views/welcome/index.html.erb +0 -4
  178. data/guides/code/getting_started/bin/bundle +0 -4
  179. data/guides/code/getting_started/bin/rails +0 -4
  180. data/guides/code/getting_started/bin/rake +0 -4
  181. data/guides/code/getting_started/config/application.rb +0 -18
  182. data/guides/code/getting_started/config/boot.rb +0 -4
  183. data/guides/code/getting_started/config/database.yml +0 -25
  184. data/guides/code/getting_started/config/environment.rb +0 -5
  185. data/guides/code/getting_started/config/environments/development.rb +0 -30
  186. data/guides/code/getting_started/config/environments/production.rb +0 -80
  187. data/guides/code/getting_started/config/environments/test.rb +0 -36
  188. data/guides/code/getting_started/config/initializers/backtrace_silencers.rb +0 -7
  189. data/guides/code/getting_started/config/initializers/filter_parameter_logging.rb +0 -4
  190. data/guides/code/getting_started/config/initializers/inflections.rb +0 -16
  191. data/guides/code/getting_started/config/initializers/locale.rb +0 -9
  192. data/guides/code/getting_started/config/initializers/mime_types.rb +0 -5
  193. data/guides/code/getting_started/config/initializers/secret_token.rb +0 -12
  194. data/guides/code/getting_started/config/initializers/session_store.rb +0 -3
  195. data/guides/code/getting_started/config/initializers/wrap_parameters.rb +0 -14
  196. data/guides/code/getting_started/config/locales/en.yml +0 -23
  197. data/guides/code/getting_started/config/routes.rb +0 -7
  198. data/guides/code/getting_started/config.ru +0 -4
  199. data/guides/code/getting_started/db/migrate/20130122042648_create_posts.rb +0 -10
  200. data/guides/code/getting_started/db/migrate/20130122045842_create_comments.rb +0 -11
  201. data/guides/code/getting_started/db/schema.rb +0 -33
  202. data/guides/code/getting_started/db/seeds.rb +0 -7
  203. data/guides/code/getting_started/public/404.html +0 -60
  204. data/guides/code/getting_started/public/422.html +0 -60
  205. data/guides/code/getting_started/public/500.html +0 -59
  206. data/guides/code/getting_started/public/favicon.ico +0 -0
  207. data/guides/code/getting_started/public/robots.txt +0 -5
  208. data/guides/code/getting_started/test/controllers/comments_controller_test.rb +0 -7
  209. data/guides/code/getting_started/test/controllers/posts_controller_test.rb +0 -7
  210. data/guides/code/getting_started/test/controllers/welcome_controller_test.rb +0 -9
  211. data/guides/code/getting_started/test/fixtures/comments.yml +0 -11
  212. data/guides/code/getting_started/test/fixtures/posts.yml +0 -9
  213. data/guides/code/getting_started/test/helpers/comments_helper_test.rb +0 -4
  214. data/guides/code/getting_started/test/helpers/posts_helper_test.rb +0 -4
  215. data/guides/code/getting_started/test/helpers/welcome_helper_test.rb +0 -4
  216. data/guides/code/getting_started/test/models/comment_test.rb +0 -7
  217. data/guides/code/getting_started/test/models/post_test.rb +0 -7
  218. data/guides/code/getting_started/test/test_helper.rb +0 -12
  219. data/guides/rails_guides/generator.rb +0 -248
  220. data/guides/rails_guides/helpers.rb +0 -53
  221. data/guides/rails_guides/indexer.rb +0 -68
  222. data/guides/rails_guides/kindle.rb +0 -119
  223. data/guides/rails_guides/levenshtein.rb +0 -31
  224. data/guides/rails_guides/markdown/renderer.rb +0 -82
  225. data/guides/rails_guides/markdown.rb +0 -163
  226. data/guides/rails_guides.rb +0 -63
  227. data/guides/source/2_2_release_notes.md +0 -435
  228. data/guides/source/2_3_release_notes.md +0 -621
  229. data/guides/source/3_0_release_notes.md +0 -611
  230. data/guides/source/3_1_release_notes.md +0 -556
  231. data/guides/source/3_2_release_notes.md +0 -565
  232. data/guides/source/4_0_release_notes.md +0 -276
  233. data/guides/source/4_1_release_notes.md +0 -731
  234. data/guides/source/_license.html.erb +0 -2
  235. data/guides/source/_welcome.html.erb +0 -25
  236. data/guides/source/action_controller_overview.md +0 -1175
  237. data/guides/source/action_mailer_basics.md +0 -689
  238. data/guides/source/action_view_overview.md +0 -1610
  239. data/guides/source/active_model_basics.md +0 -200
  240. data/guides/source/active_record_basics.md +0 -373
  241. data/guides/source/active_record_callbacks.md +0 -410
  242. data/guides/source/active_record_querying.md +0 -1773
  243. data/guides/source/active_record_validations.md +0 -1169
  244. data/guides/source/active_support_core_extensions.md +0 -3864
  245. data/guides/source/active_support_instrumentation.md +0 -496
  246. data/guides/source/api_documentation_guidelines.md +0 -315
  247. data/guides/source/asset_pipeline.md +0 -1163
  248. data/guides/source/association_basics.md +0 -2229
  249. data/guides/source/caching_with_rails.md +0 -354
  250. data/guides/source/command_line.md +0 -603
  251. data/guides/source/configuring.md +0 -942
  252. data/guides/source/contributing_to_ruby_on_rails.md +0 -544
  253. data/guides/source/credits.html.erb +0 -80
  254. data/guides/source/debugging_rails_applications.md +0 -707
  255. data/guides/source/development_dependencies_install.md +0 -278
  256. data/guides/source/documents.yaml +0 -193
  257. data/guides/source/engines.md +0 -1391
  258. data/guides/source/form_helpers.md +0 -1001
  259. data/guides/source/generators.md +0 -663
  260. data/guides/source/getting_started.md +0 -1947
  261. data/guides/source/i18n.md +0 -1043
  262. data/guides/source/index.html.erb +0 -27
  263. data/guides/source/initialization.md +0 -657
  264. data/guides/source/kindle/copyright.html.erb +0 -1
  265. data/guides/source/kindle/layout.html.erb +0 -27
  266. data/guides/source/kindle/rails_guides.opf.erb +0 -52
  267. data/guides/source/kindle/toc.html.erb +0 -24
  268. data/guides/source/kindle/toc.ncx.erb +0 -64
  269. data/guides/source/kindle/welcome.html.erb +0 -5
  270. data/guides/source/layout.html.erb +0 -146
  271. data/guides/source/layouts_and_rendering.md +0 -1226
  272. data/guides/source/maintenance_policy.md +0 -56
  273. data/guides/source/migrations.md +0 -1109
  274. data/guides/source/nested_model_forms.md +0 -225
  275. data/guides/source/plugins.md +0 -444
  276. data/guides/source/rails_application_templates.md +0 -248
  277. data/guides/source/rails_on_rack.md +0 -333
  278. data/guides/source/routing.md +0 -1115
  279. data/guides/source/ruby_on_rails_guides_guidelines.md +0 -128
  280. data/guides/source/security.md +0 -1018
  281. data/guides/source/testing.md +0 -1052
  282. data/guides/source/upgrading_ruby_on_rails.md +0 -899
  283. data/guides/source/working_with_javascript_in_rails.md +0 -405
  284. data/guides/w3c_validator.rb +0 -95
@@ -1,47 +0,0 @@
1
- # Activate the gem you are reporting the issue against.
2
- gem 'rails', '4.0.0'
3
-
4
- require 'rails'
5
- require 'action_controller/railtie'
6
-
7
- class TestApp < Rails::Application
8
- config.root = File.dirname(__FILE__)
9
- config.session_store :cookie_store, key: 'cookie_store_key'
10
- config.secret_token = 'secret_token'
11
- config.secret_key_base = 'secret_key_base'
12
-
13
- config.logger = Logger.new($stdout)
14
- Rails.logger = config.logger
15
-
16
- routes.draw do
17
- get '/' => 'test#index'
18
- end
19
- end
20
-
21
- class TestController < ActionController::Base
22
- include Rails.application.routes.url_helpers
23
-
24
- def index
25
- render text: 'Home'
26
- end
27
- end
28
-
29
- require 'minitest/autorun'
30
- require 'rack/test'
31
-
32
- # Ensure backward compatibility with Minitest 4
33
- Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
34
-
35
- class BugTest < Minitest::Test
36
- include Rack::Test::Methods
37
-
38
- def test_returns_success
39
- get '/'
40
- assert last_response.ok?
41
- end
42
-
43
- private
44
- def app
45
- Rails.application
46
- end
47
- end
@@ -1,53 +0,0 @@
1
- unless File.exist?('Gemfile')
2
- File.write('Gemfile', <<-GEMFILE)
3
- source 'https://rubygems.org'
4
- gem 'rails', github: 'rails/rails'
5
- GEMFILE
6
-
7
- system 'bundle'
8
- end
9
-
10
- require 'bundler'
11
- Bundler.setup(:default)
12
-
13
- require 'rails'
14
- require 'action_controller/railtie'
15
-
16
- class TestApp < Rails::Application
17
- config.root = File.dirname(__FILE__)
18
- config.session_store :cookie_store, key: 'cookie_store_key'
19
- config.secret_token = 'secret_token'
20
- config.secret_key_base = 'secret_key_base'
21
-
22
- config.logger = Logger.new($stdout)
23
- Rails.logger = config.logger
24
-
25
- routes.draw do
26
- get '/' => 'test#index'
27
- end
28
- end
29
-
30
- class TestController < ActionController::Base
31
- include Rails.application.routes.url_helpers
32
-
33
- def index
34
- render text: 'Home'
35
- end
36
- end
37
-
38
- require 'minitest/autorun'
39
- require 'rack/test'
40
-
41
- class BugTest < Minitest::Test
42
- include Rack::Test::Methods
43
-
44
- def test_returns_success
45
- get '/'
46
- assert last_response.ok?
47
- end
48
-
49
- private
50
- def app
51
- Rails.application
52
- end
53
- end
@@ -1,40 +0,0 @@
1
- # Activate the gem you are reporting the issue against.
2
- gem 'activerecord', '4.0.0'
3
- require 'active_record'
4
- require 'minitest/autorun'
5
- require 'logger'
6
-
7
- # Ensure backward compatibility with Minitest 4
8
- Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
9
-
10
- # This connection will do for database-independent bug reports.
11
- ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
12
- ActiveRecord::Base.logger = Logger.new(STDOUT)
13
-
14
- ActiveRecord::Schema.define do
15
- create_table :posts do |t|
16
- end
17
-
18
- create_table :comments do |t|
19
- t.integer :post_id
20
- end
21
- end
22
-
23
- class Post < ActiveRecord::Base
24
- has_many :comments
25
- end
26
-
27
- class Comment < ActiveRecord::Base
28
- belongs_to :post
29
- end
30
-
31
- class BugTest < Minitest::Test
32
- def test_association_stuff
33
- post = Post.create!
34
- post.comments << Comment.create!
35
-
36
- assert_equal 1, post.comments.count
37
- assert_equal 1, Comment.count
38
- assert_equal post.id, Comment.first.post.id
39
- end
40
- end
@@ -1,49 +0,0 @@
1
- unless File.exist?('Gemfile')
2
- File.write('Gemfile', <<-GEMFILE)
3
- source 'https://rubygems.org'
4
- gem 'rails', github: 'rails/rails'
5
- gem 'arel', github: 'rails/arel'
6
- gem 'sqlite3'
7
- GEMFILE
8
-
9
- system 'bundle'
10
- end
11
-
12
- require 'bundler'
13
- Bundler.setup(:default)
14
-
15
- require 'active_record'
16
- require 'minitest/autorun'
17
- require 'logger'
18
-
19
- # This connection will do for database-independent bug reports.
20
- ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
21
- ActiveRecord::Base.logger = Logger.new(STDOUT)
22
-
23
- ActiveRecord::Schema.define do
24
- create_table :posts do |t|
25
- end
26
-
27
- create_table :comments do |t|
28
- t.integer :post_id
29
- end
30
- end
31
-
32
- class Post < ActiveRecord::Base
33
- has_many :comments
34
- end
35
-
36
- class Comment < ActiveRecord::Base
37
- belongs_to :post
38
- end
39
-
40
- class BugTest < Minitest::Test
41
- def test_association_stuff
42
- post = Post.create!
43
- post.comments << Comment.create!
44
-
45
- assert_equal 1, post.comments.count
46
- assert_equal 1, Comment.count
47
- assert_equal post.id, Comment.first.post.id
48
- end
49
- end
@@ -1,40 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
-
4
- # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
- gem 'rails', '4.1.1'
6
- # Use SQLite3 as the database for Active Record
7
- gem 'sqlite3'
8
- # Use SCSS for stylesheets
9
- gem 'sass-rails', '~> 4.0.3'
10
- # Use Uglifier as compressor for JavaScript assets
11
- gem 'uglifier', '>= 1.3.0'
12
- # Use CoffeeScript for .js.coffee assets and views
13
- gem 'coffee-rails', '~> 4.0.0'
14
- # See https://github.com/sstephenson/execjs#readme for more supported runtimes
15
- # gem 'therubyracer', platforms: :ruby
16
-
17
- # Use jquery as the JavaScript library
18
- gem 'jquery-rails'
19
- # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
20
- gem 'turbolinks'
21
- # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
22
- gem 'jbuilder', '~> 2.0'
23
- # bundle exec rake doc:rails generates the API under doc/api.
24
- gem 'sdoc', '~> 0.4.0', group: :doc
25
-
26
- # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
27
- gem 'spring', group: :development
28
-
29
- # Use ActiveModel has_secure_password
30
- # gem 'bcrypt', '~> 3.1.7'
31
-
32
- # Use unicorn as the app server
33
- # gem 'unicorn'
34
-
35
- # Use Capistrano for deployment
36
- # gem 'capistrano-rails', group: :development
37
-
38
- # Use debugger
39
- # gem 'debugger', group: [:development, :test]
40
-
@@ -1,125 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- actionmailer (4.1.1)
5
- actionpack (= 4.1.1)
6
- actionview (= 4.1.1)
7
- mail (~> 2.5.4)
8
- actionpack (4.1.1)
9
- actionview (= 4.1.1)
10
- activesupport (= 4.1.1)
11
- rack (~> 1.5.2)
12
- rack-test (~> 0.6.2)
13
- actionview (4.1.1)
14
- activesupport (= 4.1.1)
15
- builder (~> 3.1)
16
- erubis (~> 2.7.0)
17
- activemodel (4.1.1)
18
- activesupport (= 4.1.1)
19
- builder (~> 3.1)
20
- activerecord (4.1.1)
21
- activemodel (= 4.1.1)
22
- activesupport (= 4.1.1)
23
- arel (~> 5.0.0)
24
- activesupport (4.1.1)
25
- i18n (~> 0.6, >= 0.6.9)
26
- json (~> 1.7, >= 1.7.7)
27
- minitest (~> 5.1)
28
- thread_safe (~> 0.1)
29
- tzinfo (~> 1.1)
30
- arel (5.0.1.20140414130214)
31
- builder (3.2.2)
32
- coffee-rails (4.0.1)
33
- coffee-script (>= 2.2.0)
34
- railties (>= 4.0.0, < 5.0)
35
- coffee-script (2.2.0)
36
- coffee-script-source
37
- execjs
38
- coffee-script-source (1.6.3)
39
- erubis (2.7.0)
40
- execjs (2.0.2)
41
- hike (1.2.3)
42
- i18n (0.6.9)
43
- jbuilder (2.0.2)
44
- activesupport (>= 3.0.0)
45
- multi_json (>= 1.2.0)
46
- jquery-rails (3.0.4)
47
- railties (>= 3.0, < 5.0)
48
- thor (>= 0.14, < 2.0)
49
- json (1.8.1)
50
- mail (2.5.4)
51
- mime-types (~> 1.16)
52
- treetop (~> 1.4.8)
53
- mime-types (1.25.1)
54
- minitest (5.3.4)
55
- multi_json (1.10.1)
56
- polyglot (0.3.4)
57
- rack (1.5.2)
58
- rack-test (0.6.2)
59
- rack (>= 1.0)
60
- rails (4.1.1)
61
- actionmailer (= 4.1.1)
62
- actionpack (= 4.1.1)
63
- actionview (= 4.1.1)
64
- activemodel (= 4.1.1)
65
- activerecord (= 4.1.1)
66
- activesupport (= 4.1.1)
67
- bundler (>= 1.3.0, < 2.0)
68
- railties (= 4.1.1)
69
- sprockets-rails (~> 2.0)
70
- railties (4.1.1)
71
- actionpack (= 4.1.1)
72
- activesupport (= 4.1.1)
73
- rake (>= 0.8.7)
74
- thor (>= 0.18.1, < 2.0)
75
- rake (10.3.2)
76
- rdoc (4.1.1)
77
- json (~> 1.4)
78
- sass (3.2.19)
79
- sass-rails (4.0.3)
80
- railties (>= 4.0.0, < 5.0)
81
- sass (~> 3.2.0)
82
- sprockets (~> 2.8, <= 2.11.0)
83
- sprockets-rails (~> 2.0)
84
- sdoc (0.4.0)
85
- json (~> 1.8)
86
- rdoc (~> 4.0, < 5.0)
87
- spring (1.0.0)
88
- sprockets (2.11.0)
89
- hike (~> 1.2)
90
- multi_json (~> 1.0)
91
- rack (~> 1.0)
92
- tilt (~> 1.1, != 1.3.0)
93
- sprockets-rails (2.1.3)
94
- actionpack (>= 3.0)
95
- activesupport (>= 3.0)
96
- sprockets (~> 2.8)
97
- sqlite3 (1.3.8)
98
- thor (0.19.1)
99
- thread_safe (0.3.3)
100
- tilt (1.4.1)
101
- treetop (1.4.15)
102
- polyglot
103
- polyglot (>= 0.3.1)
104
- turbolinks (2.2.0)
105
- coffee-rails
106
- tzinfo (1.1.0)
107
- thread_safe (~> 0.1)
108
- uglifier (2.4.0)
109
- execjs (>= 0.3.0)
110
- json (>= 1.8.0)
111
-
112
- PLATFORMS
113
- ruby
114
-
115
- DEPENDENCIES
116
- coffee-rails (~> 4.0.0)
117
- jbuilder (~> 2.0)
118
- jquery-rails
119
- rails (= 4.1.1)
120
- sass-rails (~> 4.0.3)
121
- sdoc (~> 0.4.0)
122
- spring
123
- sqlite3
124
- turbolinks
125
- uglifier (>= 1.3.0)
@@ -1,28 +0,0 @@
1
- == README
2
-
3
- This README would normally document whatever steps are necessary to get the
4
- application up and running.
5
-
6
- Things you may want to cover:
7
-
8
- * Ruby version
9
-
10
- * System dependencies
11
-
12
- * Configuration
13
-
14
- * Database creation
15
-
16
- * Database initialization
17
-
18
- * How to run the test suite
19
-
20
- * Services (job queues, cache servers, search engines, etc.)
21
-
22
- * Deployment instructions
23
-
24
- * ...
25
-
26
-
27
- Please feel free to use a different markup language if you do not plan to run
28
- <tt>rake doc:app</tt>.
@@ -1,6 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require File.expand_path('../config/application', __FILE__)
5
-
6
- Blog::Application.load_tasks
@@ -1,15 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // stub path allows dependency to be excluded from the asset bundle.
11
- //
12
- //= require jquery
13
- //= require jquery_ujs
14
- //= require turbolinks
15
- //= require_tree .
@@ -1,3 +0,0 @@
1
- # Place all the behaviors and hooks related to the matching controller here.
2
- # All this logic will automatically be available in application.js.
3
- # You can use CoffeeScript in this file: http://coffeescript.org/
@@ -1,3 +0,0 @@
1
- # Place all the behaviors and hooks related to the matching controller here.
2
- # All this logic will automatically be available in application.js.
3
- # You can use CoffeeScript in this file: http://coffeescript.org/
@@ -1,3 +0,0 @@
1
- # Place all the behaviors and hooks related to the matching controller here.
2
- # All this logic will automatically be available in application.js.
3
- # You can use CoffeeScript in this file: http://coffeescript.org/
@@ -1,13 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the top of the
9
- * compiled file, but it's generally better to create a new file per style scope.
10
- *
11
- *= require_self
12
- *= require_tree .
13
- */
@@ -1,3 +0,0 @@
1
- // Place all the styles related to the Comments controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,3 +0,0 @@
1
- // Place all the styles related to the posts controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,3 +0,0 @@
1
- // Place all the styles related to the welcome controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,5 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- # Prevent CSRF attacks by raising an exception.
3
- # For APIs, you may want to use :null_session instead.
4
- protect_from_forgery with: :exception
5
- end
@@ -1,23 +0,0 @@
1
- class CommentsController < ApplicationController
2
-
3
- http_basic_authenticate_with name: "dhh", password: "secret", only: :destroy
4
-
5
- def create
6
- @post = Post.find(params[:post_id])
7
- @comment = @post.comments.create(comment_params)
8
- redirect_to post_path(@post)
9
- end
10
-
11
- def destroy
12
- @post = Post.find(params[:post_id])
13
- @comment = @post.comments.find(params[:id])
14
- @comment.destroy
15
- redirect_to post_path(@post)
16
- end
17
-
18
- private
19
-
20
- def comment_params
21
- params.require(:comment).permit(:commenter, :body)
22
- end
23
- end
@@ -1,53 +0,0 @@
1
- class PostsController < ApplicationController
2
-
3
- http_basic_authenticate_with name: "dhh", password: "secret", except: [:index, :show]
4
-
5
- def index
6
- @posts = Post.all
7
- end
8
-
9
- def show
10
- @post = Post.find(params[:id])
11
- end
12
-
13
- def edit
14
- @post = Post.find(params[:id])
15
- end
16
-
17
- def update
18
- @post = Post.find(params[:id])
19
-
20
- if @post.update(post_params)
21
- redirect_to action: :show, id: @post.id
22
- else
23
- render 'edit'
24
- end
25
- end
26
-
27
- def new
28
- @post = Post.new
29
- end
30
-
31
- def create
32
- @post = Post.new(post_params)
33
-
34
- if @post.save
35
- redirect_to action: :show, id: @post.id
36
- else
37
- render 'new'
38
- end
39
- end
40
-
41
- def destroy
42
- @post = Post.find(params[:id])
43
- @post.destroy
44
-
45
- redirect_to action: :index
46
- end
47
-
48
- private
49
-
50
- def post_params
51
- params.require(:post).permit(:title, :text)
52
- end
53
- end
@@ -1,4 +0,0 @@
1
- class WelcomeController < ApplicationController
2
- def index
3
- end
4
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,2 +0,0 @@
1
- module CommentsHelper
2
- end
@@ -1,2 +0,0 @@
1
- module PostsHelper
2
- end
@@ -1,2 +0,0 @@
1
- module WelcomeHelper
2
- end
@@ -1,3 +0,0 @@
1
- class Comment < ActiveRecord::Base
2
- belongs_to :post
3
- end
@@ -1,7 +0,0 @@
1
- class Post < ActiveRecord::Base
2
- has_many :comments, dependent: :destroy
3
-
4
- validates :title,
5
- presence: true,
6
- length: { minimum: 5 }
7
- end
@@ -1,15 +0,0 @@
1
- <p>
2
- <strong>Commenter:</strong>
3
- <%= comment.commenter %>
4
- </p>
5
-
6
- <p>
7
- <strong>Comment:</strong>
8
- <%= comment.body %>
9
- </p>
10
-
11
- <p>
12
- <%= link_to 'Destroy Comment', [comment.post, comment],
13
- method: :delete,
14
- data: { confirm: 'Are you sure?' } %>
15
- </p>
@@ -1,13 +0,0 @@
1
- <%= form_for([@post, @post.comments.build]) do |f| %>
2
- <p>
3
- <%= f.label :commenter %><br />
4
- <%= f.text_field :commenter %>
5
- </p>
6
- <p>
7
- <%= f.label :body %><br />
8
- <%= f.text_area :body %>
9
- </p>
10
- <p>
11
- <%= f.submit %>
12
- </p>
13
- <% end %>
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Blog</title>
5
- <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,27 +0,0 @@
1
- <%= form_for @post do |f| %>
2
- <% if @post.errors.any? %>
3
- <div id="error_explanation">
4
- <h2><%= pluralize(@post.errors.count, "error") %> prohibited
5
- this post from being saved:</h2>
6
- <ul>
7
- <% @post.errors.full_messages.each do |msg| %>
8
- <li><%= msg %></li>
9
- <% end %>
10
- </ul>
11
- </div>
12
- <% end %>
13
- <p>
14
- <%= f.label :title %><br>
15
- <%= f.text_field :title %>
16
- </p>
17
-
18
- <p>
19
- <%= f.label :text %><br>
20
- <%= f.text_area :text %>
21
- </p>
22
-
23
- <p>
24
- <%= f.submit %>
25
- </p>
26
- <% end %>
27
-
@@ -1,5 +0,0 @@
1
- <h1>Edit post</h1>
2
-
3
- <%= render 'form' %>
4
-
5
- <%= link_to 'Back', action: :index %>