Skip to content

Commit 114293c

Browse files
committed
first commit - half way through tutorial
0 parents  commit 114293c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1112
-0
lines changed

Gemfile

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
source 'https://rubygems.org'
2+
3+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
4+
gem 'rails', '4.0.2'
5+
6+
# Use sqlite3 as the database for Active Record
7+
gem 'sqlite3'
8+
9+
# Use SCSS for stylesheets
10+
gem 'sass-rails', '~> 4.0.0'
11+
12+
# Use Uglifier as compressor for JavaScript assets
13+
gem 'uglifier', '>= 1.3.0'
14+
15+
# Use CoffeeScript for .js.coffee assets and views
16+
gem 'coffee-rails', '~> 4.0.0'
17+
18+
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
19+
# gem 'therubyracer', platforms: :ruby
20+
21+
# Use jquery as the JavaScript library
22+
gem 'jquery-rails'
23+
24+
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
25+
gem 'turbolinks'
26+
27+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
28+
gem 'jbuilder', '~> 1.2'
29+
30+
group :doc do
31+
# bundle exec rake doc:rails generates the API under doc/api.
32+
gem 'sdoc', require: false
33+
end
34+
35+
# Use ActiveModel has_secure_password
36+
# gem 'bcrypt-ruby', '~> 3.1.2'
37+
38+
# Use unicorn as the app server
39+
# gem 'unicorn'
40+
41+
# Use Capistrano for deployment
42+
# gem 'capistrano', group: :development
43+
44+
# Use debugger
45+
# gem 'debugger', group: [:development, :test]

Gemfile.lock

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
actionmailer (4.0.2)
5+
actionpack (= 4.0.2)
6+
mail (~> 2.5.4)
7+
actionpack (4.0.2)
8+
activesupport (= 4.0.2)
9+
builder (~> 3.1.0)
10+
erubis (~> 2.7.0)
11+
rack (~> 1.5.2)
12+
rack-test (~> 0.6.2)
13+
activemodel (4.0.2)
14+
activesupport (= 4.0.2)
15+
builder (~> 3.1.0)
16+
activerecord (4.0.2)
17+
activemodel (= 4.0.2)
18+
activerecord-deprecated_finders (~> 1.0.2)
19+
activesupport (= 4.0.2)
20+
arel (~> 4.0.0)
21+
activerecord-deprecated_finders (1.0.3)
22+
activesupport (4.0.2)
23+
i18n (~> 0.6, >= 0.6.4)
24+
minitest (~> 4.2)
25+
multi_json (~> 1.3)
26+
thread_safe (~> 0.1)
27+
tzinfo (~> 0.3.37)
28+
arel (4.0.1)
29+
atomic (1.1.14)
30+
builder (3.1.4)
31+
coffee-rails (4.0.1)
32+
coffee-script (>= 2.2.0)
33+
railties (>= 4.0.0, < 5.0)
34+
coffee-script (2.2.0)
35+
coffee-script-source
36+
execjs
37+
coffee-script-source (1.6.3)
38+
erubis (2.7.0)
39+
execjs (2.0.2)
40+
hike (1.2.3)
41+
i18n (0.6.9)
42+
jbuilder (1.5.3)
43+
activesupport (>= 3.0.0)
44+
multi_json (>= 1.2.0)
45+
jquery-rails (3.0.4)
46+
railties (>= 3.0, < 5.0)
47+
thor (>= 0.14, < 2.0)
48+
json (1.8.1)
49+
mail (2.5.4)
50+
mime-types (~> 1.16)
51+
treetop (~> 1.4.8)
52+
mime-types (1.25.1)
53+
minitest (4.7.5)
54+
multi_json (1.8.4)
55+
polyglot (0.3.3)
56+
rack (1.5.2)
57+
rack-test (0.6.2)
58+
rack (>= 1.0)
59+
rails (4.0.2)
60+
actionmailer (= 4.0.2)
61+
actionpack (= 4.0.2)
62+
activerecord (= 4.0.2)
63+
activesupport (= 4.0.2)
64+
bundler (>= 1.3.0, < 2.0)
65+
railties (= 4.0.2)
66+
sprockets-rails (~> 2.0.0)
67+
railties (4.0.2)
68+
actionpack (= 4.0.2)
69+
activesupport (= 4.0.2)
70+
rake (>= 0.8.7)
71+
thor (>= 0.18.1, < 2.0)
72+
rake (10.1.1)
73+
rdoc (4.1.1)
74+
json (~> 1.4)
75+
sass (3.2.14)
76+
sass-rails (4.0.1)
77+
railties (>= 4.0.0, < 5.0)
78+
sass (>= 3.1.10)
79+
sprockets-rails (~> 2.0.0)
80+
sdoc (0.4.0)
81+
json (~> 1.8)
82+
rdoc (~> 4.0, < 5.0)
83+
sprockets (2.10.1)
84+
hike (~> 1.2)
85+
multi_json (~> 1.0)
86+
rack (~> 1.0)
87+
tilt (~> 1.1, != 1.3.0)
88+
sprockets-rails (2.0.1)
89+
actionpack (>= 3.0)
90+
activesupport (>= 3.0)
91+
sprockets (~> 2.8)
92+
sqlite3 (1.3.8)
93+
thor (0.18.1)
94+
thread_safe (0.1.3)
95+
atomic
96+
tilt (1.4.1)
97+
treetop (1.4.15)
98+
polyglot
99+
polyglot (>= 0.3.1)
100+
turbolinks (2.2.0)
101+
coffee-rails
102+
tzinfo (0.3.38)
103+
uglifier (2.4.0)
104+
execjs (>= 0.3.0)
105+
json (>= 1.8.0)
106+
107+
PLATFORMS
108+
ruby
109+
110+
DEPENDENCIES
111+
coffee-rails (~> 4.0.0)
112+
jbuilder (~> 1.2)
113+
jquery-rails
114+
rails (= 4.0.2)
115+
sass-rails (~> 4.0.0)
116+
sdoc
117+
sqlite3
118+
turbolinks
119+
uglifier (>= 1.3.0)

README.rdoc

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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>.

Rakefile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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

app/assets/images/.keep

Whitespace-only changes.

app/assets/javascripts/application.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11+
// about supported directives.
12+
//
13+
//= require jquery
14+
//= require jquery_ujs
15+
//= require turbolinks
16+
//= require_tree .
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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+
*/
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/

app/assets/stylesheets/posts.css.scss

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
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/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class CommentsController < ApplicationController
2+
3+
def create
4+
@post = Post.find(params[post_id])
5+
@comment = @post.comments.create(params[:comment].permit(:commenter, :body))
6+
redirect_to post_path(@post)
7+
end
8+
end

app/controllers/concerns/.keep

Whitespace-only changes.

app/controllers/posts_controller.rb

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class PostsController < ApplicationController
2+
def new
3+
@post = Post.new
4+
end
5+
6+
def create
7+
@post = Post.new(post_params)
8+
if @post.save
9+
redirect_to @post
10+
else
11+
render 'new'
12+
end
13+
end
14+
15+
def edit
16+
@post = Post.find(params[:id])
17+
end
18+
19+
def update
20+
@post = Post.find(params[:id])
21+
22+
if @post.update(params[:post].permit(:title, :text))
23+
redirect_to @post
24+
else
25+
render 'edit'
26+
end
27+
end
28+
29+
def destroy
30+
@post = Post.find(params[:id])
31+
@post.destroy
32+
redirect_to posts_path
33+
end
34+
35+
def show
36+
@post = Post.find(params[:id])
37+
end
38+
39+
def index
40+
@posts = Post.all
41+
end
42+
43+
private
44+
def post_params
45+
params.require(:post).permit(:title, :text)
46+
end
47+
end
48+

app/controllers/welcome_controller.rb

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class WelcomeController < ApplicationController
2+
def index
3+
end
4+
end

app/helpers/application_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module ApplicationHelper
2+
end

app/helpers/comments_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module CommentsHelper
2+
end

app/helpers/posts_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module PostsHelper
2+
end

app/helpers/welcome_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module WelcomeHelper
2+
end

app/mailers/.keep

Whitespace-only changes.

app/models/.keep

Whitespace-only changes.

app/models/comment.rb

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Comment < ActiveRecord::Base
2+
belongs_to :post
3+
end

app/models/concerns/.keep

Whitespace-only changes.

app/models/post.rb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Post < ActiveRecord::Base
2+
has_many :comments
3+
validates :title, presence: true,
4+
length: { minimum: 5 }
5+
end
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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>

app/views/posts/_form.html.erb

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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 %>

app/views/posts/edit.html.erb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<h1>Edit post</h1>
2+
3+
<%= render 'form' %>
4+
5+
<%= link_to 'Back', posts_path %>

0 commit comments

Comments
 (0)