Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
submissions
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mis21-intersession-2016
submissions
Commits
f992ed92
Commit
f992ed92
authored
Jul 16, 2016
by
Alfonso Gabriel R. Arvisu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Submitted Lab Activity 3
parent
3394b2e8
Changes
103
Hide whitespace changes
Inline
Side-by-side
Showing
103 changed files
with
1949 additions
and
0 deletions
+1949
-0
.gitignore
134591/Lab_Activity_3/blog/.gitignore
+17
-0
Gemfile
134591/Lab_Activity_3/blog/Gemfile
+60
-0
Gemfile.lock
134591/Lab_Activity_3/blog/Gemfile.lock
+188
-0
README.rdoc
134591/Lab_Activity_3/blog/README.rdoc
+28
-0
Rakefile
134591/Lab_Activity_3/blog/Rakefile
+6
-0
.keep
134591/Lab_Activity_3/blog/app/assets/images/.keep
+0
-0
application.js
...Lab_Activity_3/blog/app/assets/javascripts/application.js
+16
-0
application.css
...ab_Activity_3/blog/app/assets/stylesheets/application.css
+15
-0
posts_controller.rb
...Activity_3/blog/app/controllers/admin/posts_controller.rb
+54
-0
application_controller.rb
...Activity_3/blog/app/controllers/application_controller.rb
+5
-0
categories_controller.rb
..._Activity_3/blog/app/controllers/categories_controller.rb
+9
-0
.keep
134591/Lab_Activity_3/blog/app/controllers/concerns/.keep
+0
-0
pages_controller.rb
...1/Lab_Activity_3/blog/app/controllers/pages_controller.rb
+6
-0
posts_controller.rb
...1/Lab_Activity_3/blog/app/controllers/posts_controller.rb
+52
-0
application_helper.rb
134591/Lab_Activity_3/blog/app/helpers/application_helper.rb
+2
-0
.keep
134591/Lab_Activity_3/blog/app/mailers/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/app/models/.keep
+0
-0
category.rb
134591/Lab_Activity_3/blog/app/models/category.rb
+3
-0
.keep
134591/Lab_Activity_3/blog/app/models/concerns/.keep
+0
-0
post.rb
134591/Lab_Activity_3/blog/app/models/post.rb
+8
-0
user.rb
134591/Lab_Activity_3/blog/app/models/user.rb
+7
-0
_form.html.erb
.../Lab_Activity_3/blog/app/views/admin/posts/_form.html.erb
+8
-0
edit.html.erb
...1/Lab_Activity_3/blog/app/views/admin/posts/edit.html.erb
+5
-0
index.html.erb
.../Lab_Activity_3/blog/app/views/admin/posts/index.html.erb
+24
-0
new.html.erb
...91/Lab_Activity_3/blog/app/views/admin/posts/new.html.erb
+5
-0
show.html.erb
...1/Lab_Activity_3/blog/app/views/admin/posts/show.html.erb
+10
-0
show.html.erb
...91/Lab_Activity_3/blog/app/views/categories/show.html.erb
+7
-0
new.html.erb
...tivity_3/blog/app/views/devise/confirmations/new.html.erb
+16
-0
confirmation_instructions.html.erb
...pp/views/devise/mailer/confirmation_instructions.html.erb
+5
-0
password_change.html.erb
...y_3/blog/app/views/devise/mailer/password_change.html.erb
+3
-0
reset_password_instructions.html.erb
.../views/devise/mailer/reset_password_instructions.html.erb
+8
-0
unlock_instructions.html.erb
...blog/app/views/devise/mailer/unlock_instructions.html.erb
+7
-0
edit.html.erb
..._Activity_3/blog/app/views/devise/passwords/edit.html.erb
+19
-0
new.html.erb
...b_Activity_3/blog/app/views/devise/passwords/new.html.erb
+15
-0
edit.html.erb
...ivity_3/blog/app/views/devise/registrations/edit.html.erb
+27
-0
new.html.erb
...tivity_3/blog/app/views/devise/registrations/new.html.erb
+17
-0
new.html.erb
...ab_Activity_3/blog/app/views/devise/sessions/new.html.erb
+15
-0
_links.html.erb
...b_Activity_3/blog/app/views/devise/shared/_links.html.erb
+25
-0
new.html.erb
...Lab_Activity_3/blog/app/views/devise/unlocks/new.html.erb
+16
-0
application.html.erb
...ab_Activity_3/blog/app/views/layouts/application.html.erb
+20
-0
index.html.erb
134591/Lab_Activity_3/blog/app/views/pages/index.html.erb
+23
-0
_form.html.erb
134591/Lab_Activity_3/blog/app/views/posts/_form.html.erb
+8
-0
edit.html.erb
134591/Lab_Activity_3/blog/app/views/posts/edit.html.erb
+6
-0
index.html.erb
134591/Lab_Activity_3/blog/app/views/posts/index.html.erb
+21
-0
new.html.erb
134591/Lab_Activity_3/blog/app/views/posts/new.html.erb
+5
-0
show.html.erb
134591/Lab_Activity_3/blog/app/views/posts/show.html.erb
+9
-0
bundle
134591/Lab_Activity_3/blog/bin/bundle
+3
-0
rails
134591/Lab_Activity_3/blog/bin/rails
+9
-0
rake
134591/Lab_Activity_3/blog/bin/rake
+9
-0
setup
134591/Lab_Activity_3/blog/bin/setup
+29
-0
spring
134591/Lab_Activity_3/blog/bin/spring
+15
-0
config.ru
134591/Lab_Activity_3/blog/config.ru
+4
-0
application.rb
134591/Lab_Activity_3/blog/config/application.rb
+26
-0
boot.rb
134591/Lab_Activity_3/blog/config/boot.rb
+3
-0
database.yml
134591/Lab_Activity_3/blog/config/database.yml
+25
-0
environment.rb
134591/Lab_Activity_3/blog/config/environment.rb
+5
-0
development.rb
...91/Lab_Activity_3/blog/config/environments/development.rb
+41
-0
production.rb
134591/Lab_Activity_3/blog/config/environments/production.rb
+79
-0
test.rb
134591/Lab_Activity_3/blog/config/environments/test.rb
+42
-0
assets.rb
134591/Lab_Activity_3/blog/config/initializers/assets.rb
+11
-0
backtrace_silencers.rb
...ctivity_3/blog/config/initializers/backtrace_silencers.rb
+7
-0
cookies_serializer.rb
...Activity_3/blog/config/initializers/cookies_serializer.rb
+3
-0
devise.rb
134591/Lab_Activity_3/blog/config/initializers/devise.rb
+274
-0
filter_parameter_logging.rb
...ty_3/blog/config/initializers/filter_parameter_logging.rb
+4
-0
inflections.rb
...91/Lab_Activity_3/blog/config/initializers/inflections.rb
+16
-0
mime_types.rb
134591/Lab_Activity_3/blog/config/initializers/mime_types.rb
+4
-0
session_store.rb
.../Lab_Activity_3/blog/config/initializers/session_store.rb
+3
-0
wrap_parameters.rb
...ab_Activity_3/blog/config/initializers/wrap_parameters.rb
+14
-0
devise.en.yml
134591/Lab_Activity_3/blog/config/locales/devise.en.yml
+62
-0
en.yml
134591/Lab_Activity_3/blog/config/locales/en.yml
+23
-0
routes.rb
134591/Lab_Activity_3/blog/config/routes.rb
+10
-0
secrets.yml
134591/Lab_Activity_3/blog/config/secrets.yml
+22
-0
20160711044152_create_posts.rb
...Activity_3/blog/db/migrate/20160711044152_create_posts.rb
+12
-0
20160712052812_add_category_to_posts.rb
...3/blog/db/migrate/20160712052812_add_category_to_posts.rb
+5
-0
20160713050944_change_posts_table.rb
...ty_3/blog/db/migrate/20160713050944_change_posts_table.rb
+6
-0
20160713051616_create_categories.rb
...ity_3/blog/db/migrate/20160713051616_create_categories.rb
+9
-0
20160716154259_devise_create_users.rb
...y_3/blog/db/migrate/20160716154259_devise_create_users.rb
+42
-0
20160716154748_add_user_to_posts.rb
...ity_3/blog/db/migrate/20160716154748_add_user_to_posts.rb
+5
-0
schema.rb
134591/Lab_Activity_3/blog/db/schema.rb
+53
-0
seeds.rb
134591/Lab_Activity_3/blog/db/seeds.rb
+7
-0
.keep
134591/Lab_Activity_3/blog/lib/assets/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/lib/tasks/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/log/.keep
+0
-0
404.html
134591/Lab_Activity_3/blog/public/404.html
+67
-0
422.html
134591/Lab_Activity_3/blog/public/422.html
+67
-0
500.html
134591/Lab_Activity_3/blog/public/500.html
+66
-0
favicon.ico
134591/Lab_Activity_3/blog/public/favicon.ico
+0
-0
robots.txt
134591/Lab_Activity_3/blog/public/robots.txt
+5
-0
.keep
134591/Lab_Activity_3/blog/test/controllers/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/test/fixtures/.keep
+0
-0
categories.yml
134591/Lab_Activity_3/blog/test/fixtures/categories.yml
+7
-0
posts.yml
134591/Lab_Activity_3/blog/test/fixtures/posts.yml
+13
-0
users.yml
134591/Lab_Activity_3/blog/test/fixtures/users.yml
+11
-0
.keep
134591/Lab_Activity_3/blog/test/helpers/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/test/integration/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/test/mailers/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/test/models/.keep
+0
-0
category_test.rb
134591/Lab_Activity_3/blog/test/models/category_test.rb
+7
-0
post_test.rb
134591/Lab_Activity_3/blog/test/models/post_test.rb
+7
-0
user_test.rb
134591/Lab_Activity_3/blog/test/models/user_test.rb
+7
-0
test_helper.rb
134591/Lab_Activity_3/blog/test/test_helper.rb
+10
-0
.keep
134591/Lab_Activity_3/blog/vendor/assets/javascripts/.keep
+0
-0
.keep
134591/Lab_Activity_3/blog/vendor/assets/stylesheets/.keep
+0
-0
No files found.
134591/Lab_Activity_3/blog/.gitignore
0 → 100644
View file @
f992ed92
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
# git config --global core.excludesfile '~/.gitignore_global'
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp
134591/Lab_Activity_3/blog/Gemfile
0 → 100644
View file @
f992ed92
source
'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem
'rails'
,
'4.2.6'
# Use sqlite3 as the database for Active Record
gem
'sqlite3'
# Use SCSS for stylesheets
gem
'sass-rails'
,
'~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem
'uglifier'
,
'>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem
'coffee-rails'
,
'~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem
'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem
'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem
'jbuilder'
,
'~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem
'sdoc'
,
'~> 0.4.0'
,
group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group
:development
,
:test
do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem
'byebug'
end
group
:development
do
# Access an IRB console on exception pages or by using <%= console %> in views
gem
'web-console'
,
'~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem
'spring'
end
gem
'tzinfo-data'
,
platforms:
[
:mingw
,
:mswin
,
:x64_mingw
,
:jruby
]
gem
'simple_form'
gem
'devise'
134591/Lab_Activity_3/blog/Gemfile.lock
0 → 100644
View file @
f992ed92
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.2.6)
actionpack (= 4.2.6)
actionview (= 4.2.6)
activejob (= 4.2.6)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.6)
actionview (= 4.2.6)
activesupport (= 4.2.6)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.6)
activesupport (= 4.2.6)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
activejob (4.2.6)
activesupport (= 4.2.6)
globalid (>= 0.3.0)
activemodel (4.2.6)
activesupport (= 4.2.6)
builder (~> 3.1)
activerecord (4.2.6)
activemodel (= 4.2.6)
activesupport (= 4.2.6)
arel (~> 6.0)
activesupport (4.2.6)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
arel (6.0.3)
bcrypt (3.1.11-x86-mingw32)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
builder (3.2.2)
byebug (9.0.5)
coffee-rails (4.1.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.1.x)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
concurrent-ruby (1.0.2)
debug_inspector (0.0.2)
devise (4.2.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)
erubis (2.7.0)
execjs (2.7.0)
globalid (0.3.6)
activesupport (>= 4.1.0)
i18n (0.7.0)
jbuilder (2.5.0)
activesupport (>= 3.0.0, < 5.1)
multi_json (~> 1.2)
jquery-rails (4.1.1)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (1.8.3)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.4)
mime-types (>= 1.16, < 4)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
minitest (5.9.0)
multi_json (1.12.1)
nokogiri (1.6.8)
mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7)
nokogiri (1.6.8-x86-mingw32)
mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7)
orm_adapter (0.5.0)
pkg-config (1.1.7)
rack (1.6.4)
rack-test (0.6.3)
rack (>= 1.0)
rails (4.2.6)
actionmailer (= 4.2.6)
actionpack (= 4.2.6)
actionview (= 4.2.6)
activejob (= 4.2.6)
activemodel (= 4.2.6)
activerecord (= 4.2.6)
activesupport (= 4.2.6)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.6)
sprockets-rails
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.7)
activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.3)
loofah (~> 2.0)
railties (4.2.6)
actionpack (= 4.2.6)
activesupport (= 4.2.6)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (11.2.2)
rdoc (4.2.2)
json (~> 1.4)
responders (2.2.0)
railties (>= 4.2.0, < 5.1)
sass (3.4.22)
sass-rails (5.0.5)
railties (>= 4.0.0, < 6)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
simple_form (3.2.1)
actionpack (> 4, < 5.1)
activemodel (> 4, < 5.1)
spring (1.7.2)
sprockets (3.6.3)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.1.1)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
sqlite3 (1.3.11)
sqlite3 (1.3.11-x86-mingw32)
thor (0.19.1)
thread_safe (0.3.5)
tilt (2.0.5)
turbolinks (5.0.0)
turbolinks-source (~> 5)
turbolinks-source (5.0.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
tzinfo-data (1.2016.5)
tzinfo (>= 1.0.0)
uglifier (3.0.0)
execjs (>= 0.3.0, < 3)
warden (1.2.6)
rack (>= 1.0)
web-console (2.3.0)
activemodel (>= 4.0)
binding_of_caller (>= 0.7.2)
railties (>= 4.0)
sprockets-rails (>= 2.0, < 4.0)
PLATFORMS
ruby
x86-mingw32
DEPENDENCIES
byebug
coffee-rails (~> 4.1.0)
devise
jbuilder (~> 2.0)
jquery-rails
rails (= 4.2.6)
sass-rails (~> 5.0)
sdoc (~> 0.4.0)
simple_form
spring
sqlite3
turbolinks
tzinfo-data
uglifier (>= 1.3.0)
web-console (~> 2.0)
BUNDLED WITH
1.10.4
134591/Lab_Activity_3/blog/README.rdoc
0 → 100644
View file @
f992ed92
== README
This README would normally document whatever steps are necessary to get the
application up and running.
Things you may want to cover:
* Ruby version
* System dependencies
* Configuration
* Database creation
* Database initialization
* How to run the test suite
* Services (job queues, cache servers, search engines, etc.)
* Deployment instructions
* ...
Please feel free to use a different markup language if you do not plan to run
<tt>rake doc:app</tt>.
134591/Lab_Activity_3/blog/Rakefile
0 → 100644
View file @
f992ed92
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require
File
.
expand_path
(
'../config/application'
,
__FILE__
)
Rails
.
application
.
load_tasks
134591/Lab_Activity_3/blog/app/assets/images/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/app/assets/javascripts/application.js
0 → 100644
View file @
f992ed92
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
134591/Lab_Activity_3/blog/app/assets/stylesheets/application.css
0 → 100644
View file @
f992ed92
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
* compiled file so the styles you add here take precedence over styles defined in any styles
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
* file per style scope.
*
*= require_tree .
*= require_self
*/
134591/Lab_Activity_3/blog/app/controllers/admin/posts_controller.rb
0 → 100644
View file @
f992ed92
module
Admin
class
PostsController
<
ApplicationController
def
index
@posts
=
Post
.
all
render
"admin/posts/index.html.erb"
end
def
edit
@post
=
Post
.
find
(
params
[
:id
])
end
def
update
@post
=
Post
.
find
(
params
[
:id
])
if
@post
.
update
(
post_params
())
redirect_to
admin_post_path
(
@post
.
id
)
else
render
"admin/posts/edit.html.erb"
end
end
def
new
@post
=
current_user
.
posts
.
build
()
render
"admin/posts/new.html.erb"
end
def
create
@post
=
current_user
.
posts
.
build
(
post_params
())
if
@post
.
save
redirect_to
admin_post_path
(
@post
.
id
)
else
render
"admin/posts/new.html.erb"
end
end
def
show
@post
=
Post
.
find
(
params
[
:id
])
render
"admin/posts/show.html.erb"
end
def
destroy
@post
=
Post
.
find
(
params
[
:id
])
@post
.
destroy!
redirect_to
admin_posts_path
end
def
post_params
params
.
require
(
:post
).
permit!
end
end
end
\ No newline at end of file
134591/Lab_Activity_3/blog/app/controllers/application_controller.rb
0 → 100644
View file @
f992ed92
class
ApplicationController
<
ActionController
::
Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery
with: :exception
end
134591/Lab_Activity_3/blog/app/controllers/categories_controller.rb
0 → 100644
View file @
f992ed92
class
CategoriesController
<
ApplicationController
def
show
@category
=
Category
.
find
(
params
[
:id
])
@posts
=
@category
.
posts
render
"categories/show.html.erb"
end
end
\ No newline at end of file
134591/Lab_Activity_3/blog/app/controllers/concerns/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/app/controllers/pages_controller.rb
0 → 100644
View file @
f992ed92
class
PagesController
<
ApplicationController
def
index
@categories
=
Category
.
all
render
"pages/index.html.erb"
end
end
134591/Lab_Activity_3/blog/app/controllers/posts_controller.rb
0 → 100644
View file @
f992ed92
class
PostsController
<
ApplicationController
before_action
:authenticate_user!
def
index
@posts
=
Post
.
all
render
"posts/index.html.erb"
end
def
edit
@post
=
Post
.
find
(
params
[
:id
])
end
def
update
@post
=
Post
.
find
(
params
[
:id
])
if
@post
.
update
(
post_params
())
redirect_to
post_path
(
@post
.
id
)
else
render
"posts/edit.html.erb"
end
end
def
new
@post
=
current_user
.
posts
.
build
()
render
"posts/new.html.erb"
end
def
create
@post
=
current_user
.
posts
.
build
(
post_params
())
if
@post
.
save
redirect_to
post_path
(
@post
.
id
)
else
render
"posts/new.html.erb"
end
end
def
show
@post
=
Post
.
find
(
params
[
:id
])
render
"posts/show.html.erb"
end
def
destroy
@post
=
Post
.
find
(
params
[
:id
])
@post
.
destroy!
redirect_to
posts_path
end
def
post_params
params
.
require
(
:post
).
permit!
end
end
134591/Lab_Activity_3/blog/app/helpers/application_helper.rb
0 → 100644
View file @
f992ed92
module
ApplicationHelper
end
134591/Lab_Activity_3/blog/app/mailers/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/app/models/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/app/models/category.rb
0 → 100644
View file @
f992ed92
class
Category
<
ActiveRecord
::
Base
has_many
:posts
end
134591/Lab_Activity_3/blog/app/models/concerns/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/app/models/post.rb
0 → 100644
View file @
f992ed92
class
Post
<
ActiveRecord
::
Base
validates
:title
,
presence:
true
,
uniqueness:
true
validates
:content
,
presence:
true
,
uniqueness:
true
validates
:published_at
,
presence:
true
belongs_to
:category
belongs_to
:user
end
134591/Lab_Activity_3/blog/app/models/user.rb
0 → 100644
View file @
f992ed92
class
User
<
ActiveRecord
::
Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise
:database_authenticatable
,
:registerable
,
:recoverable
,
:rememberable
,
:trackable
,
:validatable
has_many
:posts
end
134591/Lab_Activity_3/blog/app/views/admin/posts/_form.html.erb
0 → 100644
View file @
f992ed92
<%=
simple_form_for
([
:admin
,
@post
])
do
|
f
|
%>
<%=
f
.
input
:title
%>
<%=
f
.
association
:category
%>
<%=
f
.
input
:published_at
%>
<%=
f
.
input
:content
%>
<%=
f
.
input
:is_published
%>
<%=
f
.
submit
%>
<%
end
%>
134591/Lab_Activity_3/blog/app/views/admin/posts/edit.html.erb
0 → 100644
View file @
f992ed92
<h1>
Admin Edit Post
</h1>
<%=
render
partial:
"form"
%>
<%=
link_to
"Back to Posts"
,
admin_posts_path
%>
\ No newline at end of file
134591/Lab_Activity_3/blog/app/views/admin/posts/index.html.erb
0 → 100644
View file @
f992ed92
<h1>
Admin Blog Posts
</h1>
<%=
link_to
(
"New Post"
,
new_admin_post_path
)
%>
<table
width=
"100%"
>
<tr>
<th>
Title
</th>
<th>
Published At
</th>
<th>
Pusblished?
</th>
<th>
Actions
</th>
</tr>
<%
@posts
.
each
do
|
post
|
%>
<tr>
<td>
<%=
post
.
title
%>
</td>
<td>
<%=
post
.
published_at
%>
</td>
<td>
<%=
post
.
is_published
%>
</td>
<td>
<%=
link_to
"Show"
,
admin_post_path
(
post
.
id
)
%>
<%=
link_to
"Edit"
,
edit_admin_post_path
(
post
.
id
)
%>
<%=
link_to
"Delete"
,
admin_post_path
(
post
.
id
),
method: :delete
,
data:
{
confirm:
'Are you sure?'
}
%>
</td>
</tr>
<%
end
%>
</table>
134591/Lab_Activity_3/blog/app/views/admin/posts/new.html.erb
0 → 100644
View file @
f992ed92
<h1>
Admin New Post
</h1>
<%=
render
partial:
"form"
%>
<%=
link_to
"Back to Posts"
,
admin_posts_path
%>
134591/Lab_Activity_3/blog/app/views/admin/posts/show.html.erb
0 → 100644
View file @
f992ed92
<h1>
<%=
@post
.
title
%>
</h1>
<h2>
<%=
"Published by:
#{
@post
.
user
.
email
}
"
%>
</h2>
<h3>
<%=
@post
.
published_at
%>
</h3>
<p>
<%=
@post
.
content
%>
</p>
<hr>
<%=
link_to
"Back to Posts"
,
admin_posts_path
%>
134591/Lab_Activity_3/blog/app/views/categories/show.html.erb
0 → 100644
View file @
f992ed92
<h1>
Category:
<%=
@category
.
name
%>
</h1>
<h2>
Posts:
</h2>
<ul>
<%
@posts
.
each
do
|
p
|
%>
<li>
<%=
link_to
p
.
title
,
post_path
(
p
.
id
)
%>
</li>
<%
end
%>
</ul>
\ No newline at end of file
134591/Lab_Activity_3/blog/app/views/devise/confirmations/new.html.erb
0 → 100644
View file @
f992ed92
<h2>
Resend confirmation instructions
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
confirmation_path
(
resource_name
),
html:
{
method: :post
})
do
|
f
|
%>
<%=
f
.
error_notification
%>
<%=
f
.
full_error
:confirmation_token
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
true
,
autofocus:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Resend confirmation instructions"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/devise/mailer/confirmation_instructions.html.erb
0 → 100644
View file @
f992ed92
<p>
Welcome
<%=
@email
%>
!
</p>
<p>
You can confirm your account email through the link below:
</p>
<p>
<%=
link_to
'Confirm my account'
,
confirmation_url
(
@resource
,
confirmation_token:
@token
)
%>
</p>
134591/Lab_Activity_3/blog/app/views/devise/mailer/password_change.html.erb
0 → 100644
View file @
f992ed92
<p>
Hello
<%=
@resource
.
email
%>
!
</p>
<p>
We're contacting you to notify you that your password has been changed.
</p>
134591/Lab_Activity_3/blog/app/views/devise/mailer/reset_password_instructions.html.erb
0 → 100644
View file @
f992ed92
<p>
Hello
<%=
@resource
.
email
%>
!
</p>
<p>
Someone has requested a link to change your password. You can do this through the link below.
</p>
<p>
<%=
link_to
'Change my password'
,
edit_password_url
(
@resource
,
reset_password_token:
@token
)
%>
</p>
<p>
If you didn't request this, please ignore this email.
</p>
<p>
Your password won't change until you access the link above and create a new one.
</p>
134591/Lab_Activity_3/blog/app/views/devise/mailer/unlock_instructions.html.erb
0 → 100644
View file @
f992ed92
<p>
Hello
<%=
@resource
.
email
%>
!
</p>
<p>
Your account has been locked due to an excessive number of unsuccessful sign in attempts.
</p>
<p>
Click the link below to unlock your account:
</p>
<p>
<%=
link_to
'Unlock my account'
,
unlock_url
(
@resource
,
unlock_token:
@token
)
%>
</p>
134591/Lab_Activity_3/blog/app/views/devise/passwords/edit.html.erb
0 → 100644
View file @
f992ed92
<h2>
Change your password
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
password_path
(
resource_name
),
html:
{
method: :put
})
do
|
f
|
%>
<%=
f
.
error_notification
%>
<%=
f
.
input
:reset_password_token
,
as: :hidden
%>
<%=
f
.
full_error
:reset_password_token
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:password
,
label:
"New password"
,
required:
true
,
autofocus:
true
,
hint:
(
"
#{
@minimum_password_length
}
characters minimum"
if
@minimum_password_length
)
%>
<%=
f
.
input
:password_confirmation
,
label:
"Confirm your new password"
,
required:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Change my password"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/devise/passwords/new.html.erb
0 → 100644
View file @
f992ed92
<h2>
Forgot your password?
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
password_path
(
resource_name
),
html:
{
method: :post
})
do
|
f
|
%>
<%=
f
.
error_notification
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
true
,
autofocus:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Send me reset password instructions"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/devise/registrations/edit.html.erb
0 → 100644
View file @
f992ed92
<h2>
Edit
<%=
resource_name
.
to_s
.
humanize
%>
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
registration_path
(
resource_name
),
html:
{
method: :put
})
do
|
f
|
%>
<%=
f
.
error_notification
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
true
,
autofocus:
true
%>
<%
if
devise_mapping
.
confirmable?
&&
resource
.
pending_reconfirmation?
%>
<p>
Currently waiting confirmation for:
<%=
resource
.
unconfirmed_email
%>
</p>
<%
end
%>
<%=
f
.
input
:password
,
autocomplete:
"off"
,
hint:
"leave it blank if you don't want to change it"
,
required:
false
%>
<%=
f
.
input
:password_confirmation
,
required:
false
%>
<%=
f
.
input
:current_password
,
hint:
"we need your current password to confirm your changes"
,
required:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Update"
%>
</div>
<%
end
%>
<h3>
Cancel my account
</h3>
<p>
Unhappy?
<%=
link_to
"Cancel my account"
,
registration_path
(
resource_name
),
data:
{
confirm:
"Are you sure?"
},
method: :delete
%>
</p>
<%=
link_to
"Back"
,
:back
%>
134591/Lab_Activity_3/blog/app/views/devise/registrations/new.html.erb
0 → 100644
View file @
f992ed92
<h2>
Sign up
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
registration_path
(
resource_name
))
do
|
f
|
%>
<%=
f
.
error_notification
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
true
,
autofocus:
true
%>
<%=
f
.
input
:password
,
required:
true
,
hint:
(
"
#{
@minimum_password_length
}
characters minimum"
if
@minimum_password_length
)
%>
<%=
f
.
input
:password_confirmation
,
required:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Sign up"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/devise/sessions/new.html.erb
0 → 100644
View file @
f992ed92
<h2>
Log in
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
session_path
(
resource_name
))
do
|
f
|
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
false
,
autofocus:
true
%>
<%=
f
.
input
:password
,
required:
false
%>
<%=
f
.
input
:remember_me
,
as: :boolean
if
devise_mapping
.
rememberable?
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Log in"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/devise/shared/_links.html.erb
0 → 100644
View file @
f992ed92
<%-
if
controller_name
!=
'sessions'
%>
<%=
link_to
"Log in"
,
new_session_path
(
resource_name
)
%>
<br
/>
<%
end
-%>
<%-
if
devise_mapping
.
registerable?
&&
controller_name
!=
'registrations'
%>
<%=
link_to
"Sign up"
,
new_registration_path
(
resource_name
)
%>
<br
/>
<%
end
-%>
<%-
if
devise_mapping
.
recoverable?
&&
controller_name
!=
'passwords'
&&
controller_name
!=
'registrations'
%>
<%=
link_to
"Forgot your password?"
,
new_password_path
(
resource_name
)
%>
<br
/>
<%
end
-%>
<%-
if
devise_mapping
.
confirmable?
&&
controller_name
!=
'confirmations'
%>
<%=
link_to
"Didn't receive confirmation instructions?"
,
new_confirmation_path
(
resource_name
)
%>
<br
/>
<%
end
-%>
<%-
if
devise_mapping
.
lockable?
&&
resource_class
.
unlock_strategy_enabled?
(
:email
)
&&
controller_name
!=
'unlocks'
%>
<%=
link_to
"Didn't receive unlock instructions?"
,
new_unlock_path
(
resource_name
)
%>
<br
/>
<%
end
-%>
<%-
if
devise_mapping
.
omniauthable?
%>
<%-
resource_class
.
omniauth_providers
.
each
do
|
provider
|
%>
<%=
link_to
"Sign in with
#{
OmniAuth
::
Utils
.
camelize
(
provider
)
}
"
,
omniauth_authorize_path
(
resource_name
,
provider
)
%>
<br
/>
<%
end
-%>
<%
end
-%>
134591/Lab_Activity_3/blog/app/views/devise/unlocks/new.html.erb
0 → 100644
View file @
f992ed92
<h2>
Resend unlock instructions
</h2>
<%=
simple_form_for
(
resource
,
as:
resource_name
,
url:
unlock_path
(
resource_name
),
html:
{
method: :post
})
do
|
f
|
%>
<%=
f
.
error_notification
%>
<%=
f
.
full_error
:unlock_token
%>
<div
class=
"form-inputs"
>
<%=
f
.
input
:email
,
required:
true
,
autofocus:
true
%>
</div>
<div
class=
"form-actions"
>
<%=
f
.
button
:submit
,
"Resend unlock instructions"
%>
</div>
<%
end
%>
<%=
render
"devise/shared/links"
%>
134591/Lab_Activity_3/blog/app/views/layouts/application.html.erb
0 → 100644
View file @
f992ed92
<!DOCTYPE html>
<html>
<head>
<title>
Blog
</title>
<%=
stylesheet_link_tag
'application'
,
media:
'all'
,
'data-turbolinks-track'
=>
true
%>
<%=
javascript_include_tag
'application'
,
'data-turbolinks-track'
=>
true
%>
<%=
csrf_meta_tags
%>
</head>
<body>
<%
if
user_signed_in?
%>
<%=
"You are logged in as:
#{
current_user
.
email
}
"
%>
||
<%=
link_to
"Sign Out"
,
destroy_user_session_path
,
method: :delete
%>
||
<%=
link_to
"Go back to Homepage"
,
root_path
%>
<%
else
%>
<%=
""
%>
<%
end
%>
<%=
yield
%>
</body>
</html>
134591/Lab_Activity_3/blog/app/views/pages/index.html.erb
0 → 100644
View file @
f992ed92
<h1>
My Blog
</h1>
<br>
<%
if
user_signed_in?
%>
<%=
"Hello!"
%>
<%
else
%>
<%=
link_to
"Sign In"
,
new_user_session_path
%>
||
<%=
link_to
"Sign Up"
,
new_user_registration_path
%>
<%
end
%>
<hr>
<%=
link_to
"Manage Posts"
,
posts_path
%>
||
<%=
link_to
"Manage Posts under Admin"
,
admin_posts_path
%>
<hr>
<%
@categories
.
each
do
|
c
|
%>
<h2>
(
<%=
c
.
id
%>
)
<%=
c
.
name
%>
</h2>
<ul>
<%
c
.
posts
.
each
do
|
p
|
%>
<li>
<%=
link_to
p
.
title
,
post_path
(
p
.
id
)
%>
</li>
<%
end
%>
</ul>
<%=
link_to
"View all Posts"
,
"/categories/
#{
c
.
id
}
"
%>
<%
end
%>
\ No newline at end of file
134591/Lab_Activity_3/blog/app/views/posts/_form.html.erb
0 → 100644
View file @
f992ed92
<%=
simple_form_for
(
@post
)
do
|
f
|
%>
<%=
f
.
input
:title
%>
<%=
f
.
input
:category
,
as: :select
,
collection:
[
"a"
,
"b"
,
"c"
]
%>
<%=
f
.
input
:published_at
%>
<%=
f
.
input
:content
%>
<%=
f
.
input
:is_published
%>
<%=
f
.
submit
%>
<%
end
%>
134591/Lab_Activity_3/blog/app/views/posts/edit.html.erb
0 → 100644
View file @
f992ed92
<h1>
Edit Post
</h1>
<%=
render
partial:
"form"
%>
<%=
link_to
"Back to Posts"
,
posts_path
%>
134591/Lab_Activity_3/blog/app/views/posts/index.html.erb
0 → 100644
View file @
f992ed92
<h1>
Blog Posts
</h1>
<table
width=
"100%"
>
<tr>
<th>
Title
</th>
<th>
Category
</th>
<th>
Published At
</th>
<th>
Pusblished?
</th>
<th>
Actions
</th>
</tr>
<%
@posts
.
each
do
|
post
|
%>
<tr>
<td>
<%=
post
.
title
%>
</td>
<td>
<%=
post
.
category
.
name
%>
</td>
<td>
<%=
post
.
published_at
%>
</td>
<td>
<%=
post
.
is_published
%>
</td>
<td>
<%=
link_to
"Show"
,
post_path
(
post
.
id
)
%>
</td>
</tr>
<%
end
%>
</table>
134591/Lab_Activity_3/blog/app/views/posts/new.html.erb
0 → 100644
View file @
f992ed92
<h1>
New Post
</h1>
<%=
render
partial:
"form"
%>
<%=
link_to
"Back to Posts"
,
posts_path
%>
134591/Lab_Activity_3/blog/app/views/posts/show.html.erb
0 → 100644
View file @
f992ed92
<h1>
<%=
@post
.
title
%>
</h1>
<h2>
<%=
"Published by:
#{
@post
.
user
.
email
}
"
%>
</h2>
<h3>
<%=
@post
.
published_at
%>
</h3>
<p>
<%=
@post
.
content
%>
</p>
<hr>
<%=
link_to
"Back to Posts"
,
posts_path
%>
134591/Lab_Activity_3/blog/bin/bundle
0 → 100644
View file @
f992ed92
#!/usr/bin/env ruby
ENV
[
'BUNDLE_GEMFILE'
]
||=
File
.
expand_path
(
'../../Gemfile'
,
__FILE__
)
load
Gem
.
bin_path
(
'bundler'
,
'bundle'
)
134591/Lab_Activity_3/blog/bin/rails
0 → 100644
View file @
f992ed92
#!/usr/bin/env ruby
begin
load
File
.
expand_path
(
'../spring'
,
__FILE__
)
rescue
LoadError
=>
e
raise
unless
e
.
message
.
include?
(
'spring'
)
end
APP_PATH
=
File
.
expand_path
(
'../../config/application'
,
__FILE__
)
require_relative
'../config/boot'
require
'rails/commands'
134591/Lab_Activity_3/blog/bin/rake
0 → 100644
View file @
f992ed92
#!/usr/bin/env ruby
begin
load
File
.
expand_path
(
'../spring'
,
__FILE__
)
rescue
LoadError
=>
e
raise
unless
e
.
message
.
include?
(
'spring'
)
end
require_relative
'../config/boot'
require
'rake'
Rake
.
application
.
run
134591/Lab_Activity_3/blog/bin/setup
0 → 100644
View file @
f992ed92
#!/usr/bin/env ruby
require
'pathname'
# path to your application root.
APP_ROOT
=
Pathname
.
new
File
.
expand_path
(
'../../'
,
__FILE__
)
Dir
.
chdir
APP_ROOT
do
# This script is a starting point to setup your application.
# Add necessary setup steps to this file:
puts
"== Installing dependencies =="
system
"gem install bundler --conservative"
system
"bundle check || bundle install"
# puts "\n== Copying sample files =="
# unless File.exist?("config/database.yml")
# system "cp config/database.yml.sample config/database.yml"
# end
puts
"
\n
== Preparing database =="
system
"bin/rake db:setup"
puts
"
\n
== Removing old logs and tempfiles =="
system
"rm -f log/*"
system
"rm -rf tmp/cache"
puts
"
\n
== Restarting application server =="
system
"touch tmp/restart.txt"
end
134591/Lab_Activity_3/blog/bin/spring
0 → 100644
View file @
f992ed92
#!/usr/bin/env ruby
# This file loads spring without using Bundler, in order to be fast.
# It gets overwritten when you run the `spring binstub` command.
unless
defined?
(
Spring
)
require
'rubygems'
require
'bundler'
if
(
match
=
Bundler
.
default_lockfile
.
read
.
match
(
/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m
))
Gem
.
paths
=
{
'GEM_PATH'
=>
[
Bundler
.
bundle_path
.
to_s
,
*
Gem
.
path
].
uniq
.
join
(
Gem
.
path_separator
)
}
gem
'spring'
,
match
[
1
]
require
'spring/binstub'
end
end
134591/Lab_Activity_3/blog/config.ru
0 → 100644
View file @
f992ed92
# This file is used by Rack-based servers to start the application.
require
::
File
.
expand_path
(
'../config/environment'
,
__FILE__
)
run
Rails
.
application
134591/Lab_Activity_3/blog/config/application.rb
0 → 100644
View file @
f992ed92
require
File
.
expand_path
(
'../boot'
,
__FILE__
)
require
'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler
.
require
(
*
Rails
.
groups
)
module
Blog
class
Application
<
Rails
::
Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
# Do not swallow errors in after_commit/after_rollback callbacks.
config
.
active_record
.
raise_in_transactional_callbacks
=
true
end
end
134591/Lab_Activity_3/blog/config/boot.rb
0 → 100644
View file @
f992ed92
ENV
[
'BUNDLE_GEMFILE'
]
||=
File
.
expand_path
(
'../../Gemfile'
,
__FILE__
)
require
'bundler/setup'
# Set up gems listed in the Gemfile.
134591/Lab_Activity_3/blog/config/database.yml
0 → 100644
View file @
f992ed92
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default
:
&default
adapter
:
sqlite3
pool
:
5
timeout
:
5000
development
:
<<
:
*default
database
:
db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test
:
<<
:
*default
database
:
db/test.sqlite3
production
:
<<
:
*default
database
:
db/production.sqlite3
134591/Lab_Activity_3/blog/config/environment.rb
0 → 100644
View file @
f992ed92
# Load the Rails application.
require
File
.
expand_path
(
'../application'
,
__FILE__
)
# Initialize the Rails application.
Rails
.
application
.
initialize!
134591/Lab_Activity_3/blog/config/environments/development.rb
0 → 100644
View file @
f992ed92
Rails
.
application
.
configure
do
# Settings specified here will take precedence over those in config/application.rb.
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config
.
cache_classes
=
false
# Do not eager load code on boot.
config
.
eager_load
=
false
# Show full error reports and disable caching.
config
.
consider_all_requests_local
=
true
config
.
action_controller
.
perform_caching
=
false
# Don't care if the mailer can't send.
config
.
action_mailer
.
raise_delivery_errors
=
false
# Print deprecation notices to the Rails logger.
config
.
active_support
.
deprecation
=
:log
# Raise an error on page load if there are pending migrations.
config
.
active_record
.
migration_error
=
:page_load
# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config
.
assets
.
debug
=
true
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config
.
assets
.
digest
=
true
# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config
.
assets
.
raise_runtime_errors
=
true
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end
134591/Lab_Activity_3/blog/config/environments/production.rb
0 → 100644
View file @
f992ed92
Rails
.
application
.
configure
do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config
.
cache_classes
=
true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config
.
eager_load
=
true
# Full error reports are disabled and caching is turned on.
config
.
consider_all_requests_local
=
false
config
.
action_controller
.
perform_caching
=
true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like
# NGINX, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config
.
serve_static_files
=
ENV
[
'RAILS_SERVE_STATIC_FILES'
].
present?
# Compress JavaScripts and CSS.
config
.
assets
.
js_compressor
=
:uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config
.
assets
.
compile
=
false
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config
.
assets
.
digest
=
true
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true
# Use the lowest log level to ensure availability of diagnostic information
# when problems arise.
config
.
log_level
=
:debug
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config
.
i18n
.
fallbacks
=
true
# Send deprecation notices to registered listeners.
config
.
active_support
.
deprecation
=
:notify
# Use default logging formatter so that PID and timestamp are not suppressed.
config
.
log_formatter
=
::
Logger
::
Formatter
.
new
# Do not dump schema after migrations.
config
.
active_record
.
dump_schema_after_migration
=
false
end
134591/Lab_Activity_3/blog/config/environments/test.rb
0 → 100644
View file @
f992ed92
Rails
.
application
.
configure
do
# Settings specified here will take precedence over those in config/application.rb.
# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there!
config
.
cache_classes
=
true
# Do not eager load code on boot. This avoids loading your whole application
# just for the purpose of running a single test. If you are using a tool that
# preloads Rails for running tests, you may have to set it to true.
config
.
eager_load
=
false
# Configure static file server for tests with Cache-Control for performance.
config
.
serve_static_files
=
true
config
.
static_cache_control
=
'public, max-age=3600'
# Show full error reports and disable caching.
config
.
consider_all_requests_local
=
true
config
.
action_controller
.
perform_caching
=
false
# Raise exceptions instead of rendering exception templates.
config
.
action_dispatch
.
show_exceptions
=
false
# Disable request forgery protection in test environment.
config
.
action_controller
.
allow_forgery_protection
=
false
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config
.
action_mailer
.
delivery_method
=
:test
# Randomize the order test cases are executed.
config
.
active_support
.
test_order
=
:random
# Print deprecation notices to the stderr.
config
.
active_support
.
deprecation
=
:stderr
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end
134591/Lab_Activity_3/blog/config/initializers/assets.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails
.
application
.
config
.
assets
.
version
=
'1.0'
# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
134591/Lab_Activity_3/blog/config/initializers/backtrace_silencers.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
# Rails.backtrace_cleaner.remove_silencers!
134591/Lab_Activity_3/blog/config/initializers/cookies_serializer.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
Rails
.
application
.
config
.
action_dispatch
.
cookies_serializer
=
:json
134591/Lab_Activity_3/blog/config/initializers/devise.rb
0 → 100644
View file @
f992ed92
# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.
Devise
.
setup
do
|
config
|
# The secret key used by Devise. Devise uses this key to generate
# random tokens. Changing this key will render invalid all existing
# confirmation, reset password and unlock tokens in the database.
# Devise will use the `secret_key_base` as its `secret_key`
# by default. You can change it below and use your own secret key.
# config.secret_key = 'f51f52d66d599efadfac0aac01bfc43ba4670c97b47c89804abcd1c1981f0083e7c31d573e6c85a474e6debe46bb247d25be3b116a1f91b12a235df7ce6db4fb'
# ==> Mailer Configuration
# Configure the e-mail address which will be shown in Devise::Mailer,
# note that it will be overwritten if you use your own mailer class
# with default "from" parameter.
config
.
mailer_sender
=
'please-change-me-at-config-initializers-devise@example.com'
# Configure the class responsible to send e-mails.
# config.mailer = 'Devise::Mailer'
# Configure the parent class responsible to send e-mails.
# config.parent_mailer = 'ActionMailer::Base'
# ==> ORM configuration
# Load and configure the ORM. Supports :active_record (default) and
# :mongoid (bson_ext recommended) by default. Other ORMs may be
# available as additional gems.
require
'devise/orm/active_record'
# ==> Configuration for any authentication mechanism
# Configure which keys are used when authenticating a user. The default is
# just :email. You can configure it to use [:username, :subdomain], so for
# authenticating a user, both parameters are required. Remember that those
# parameters are used only when authenticating and not when retrieving from
# session. If you need permissions, you should implement that in a before filter.
# You can also supply a hash where the value is a boolean determining whether
# or not authentication should be aborted when the value is not present.
# config.authentication_keys = [:email]
# Configure parameters from the request object used for authentication. Each entry
# given should be a request method and it will automatically be passed to the
# find_for_authentication method and considered in your model lookup. For instance,
# if you set :request_keys to [:subdomain], :subdomain will be used on authentication.
# The same considerations mentioned for authentication_keys also apply to request_keys.
# config.request_keys = []
# Configure which authentication keys should be case-insensitive.
# These keys will be downcased upon creating or modifying a user and when used
# to authenticate or find a user. Default is :email.
config
.
case_insensitive_keys
=
[
:email
]
# Configure which authentication keys should have whitespace stripped.
# These keys will have whitespace before and after removed upon creating or
# modifying a user and when used to authenticate or find a user. Default is :email.
config
.
strip_whitespace_keys
=
[
:email
]
# Tell if authentication through request.params is enabled. True by default.
# It can be set to an array that will enable params authentication only for the
# given strategies, for example, `config.params_authenticatable = [:database]` will
# enable it only for database (email + password) authentication.
# config.params_authenticatable = true
# Tell if authentication through HTTP Auth is enabled. False by default.
# It can be set to an array that will enable http authentication only for the
# given strategies, for example, `config.http_authenticatable = [:database]` will
# enable it only for database authentication. The supported strategies are:
# :database = Support basic authentication with authentication key + password
# config.http_authenticatable = false
# If 401 status code should be returned for AJAX requests. True by default.
# config.http_authenticatable_on_xhr = true
# The realm used in Http Basic Authentication. 'Application' by default.
# config.http_authentication_realm = 'Application'
# It will change confirmation, password recovery and other workflows
# to behave the same regardless if the e-mail provided was right or wrong.
# Does not affect registerable.
# config.paranoid = true
# By default Devise will store the user in session. You can skip storage for
# particular strategies by setting this option.
# Notice that if you are skipping storage for all authentication paths, you
# may want to disable generating routes to Devise's sessions controller by
# passing skip: :sessions to `devise_for` in your config/routes.rb
config
.
skip_session_storage
=
[
:http_auth
]
# By default, Devise cleans up the CSRF token on authentication to
# avoid CSRF token fixation attacks. This means that, when using AJAX
# requests for sign in and sign up, you need to get a new CSRF token
# from the server. You can disable this option at your own risk.
# config.clean_up_csrf_token_on_authentication = true
# When false, Devise will not attempt to reload routes on eager load.
# This can reduce the time taken to boot the app but if your application
# requires the Devise mappings to be loaded during boot time the application
# won't boot properly.
# config.reload_routes = true
# ==> Configuration for :database_authenticatable
# For bcrypt, this is the cost for hashing the password and defaults to 11. If
# using other algorithms, it sets how many times you want the password to be hashed.
#
# Limiting the stretches to just one in testing will increase the performance of
# your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use
# a value less than 10 in other environments. Note that, for bcrypt (the default
# algorithm), the cost increases exponentially with the number of stretches (e.g.
# a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation).
config
.
stretches
=
Rails
.
env
.
test?
?
1
:
11
# Set up a pepper to generate the hashed password.
# config.pepper = '1f8fc2ae51e730a20414bd916245d2180d5387cd633bba4aad9abf99eba2d2f33bd8e37f32f82d661e8644dde0a2d66479ef6fd2cdf65d8823feeb35f196eef5'
# Send a notification email when the user's password is changed
# config.send_password_change_notification = false
# ==> Configuration for :confirmable
# A period that the user is allowed to access the website even without
# confirming their account. For instance, if set to 2.days, the user will be
# able to access the website for two days without confirming their account,
# access will be blocked just in the third day. Default is 0.days, meaning
# the user cannot access the website without confirming their account.
# config.allow_unconfirmed_access_for = 2.days
# A period that the user is allowed to confirm their account before their
# token becomes invalid. For example, if set to 3.days, the user can confirm
# their account within 3 days after the mail was sent, but on the fourth day
# their account can't be confirmed with the token any more.
# Default is nil, meaning there is no restriction on how long a user can take
# before confirming their account.
# config.confirm_within = 3.days
# If true, requires any email changes to be confirmed (exactly the same way as
# initial account confirmation) to be applied. Requires additional unconfirmed_email
# db field (see migrations). Until confirmed, new email is stored in
# unconfirmed_email column, and copied to email column on successful confirmation.
config
.
reconfirmable
=
true
# Defines which key will be used when confirming an account
# config.confirmation_keys = [:email]
# ==> Configuration for :rememberable
# The time the user will be remembered without asking for credentials again.
# config.remember_for = 2.weeks
# Invalidates all the remember me tokens when the user signs out.
config
.
expire_all_remember_me_on_sign_out
=
true
# If true, extends the user's remember period when remembered via cookie.
# config.extend_remember_period = false
# Options to be passed to the created cookie. For instance, you can set
# secure: true in order to force SSL only cookies.
# config.rememberable_options = {}
# ==> Configuration for :validatable
# Range for password length.
config
.
password_length
=
6
..
128
# Email regex used to validate email formats. It simply asserts that
# one (and only one) @ exists in the given string. This is mainly
# to give user feedback and not to assert the e-mail validity.
config
.
email_regexp
=
/\A[^@\s]+@[^@\s]+\z/
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
# config.timeout_in = 30.minutes
# ==> Configuration for :lockable
# Defines which strategy will be used to lock an account.
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
# :none = No lock strategy. You should handle locking by yourself.
# config.lock_strategy = :failed_attempts
# Defines which key will be used when locking and unlocking an account
# config.unlock_keys = [:email]
# Defines which strategy will be used to unlock an account.
# :email = Sends an unlock link to the user email
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
# :both = Enables both strategies
# :none = No unlock strategy. You should handle unlocking by yourself.
# config.unlock_strategy = :both
# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
# config.maximum_attempts = 20
# Time interval to unlock the account if :time is enabled as unlock_strategy.
# config.unlock_in = 1.hour
# Warn on the last attempt before the account is locked.
# config.last_attempt_warning = true
# ==> Configuration for :recoverable
#
# Defines which key will be used when recovering the password for an account
# config.reset_password_keys = [:email]
# Time interval you can reset your password with a reset password key.
# Don't put a too small interval or your users won't have the time to
# change their passwords.
config
.
reset_password_within
=
6
.
hours
# When set to false, does not sign a user in automatically after their password is
# reset. Defaults to true, so a user is signed in automatically after a reset.
# config.sign_in_after_reset_password = true
# ==> Configuration for :encryptable
# Allow you to use another hashing or encryption algorithm besides bcrypt (default).
# You can use :sha1, :sha512 or algorithms from others authentication tools as
# :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20
# for default behavior) and :restful_authentication_sha1 (then you should set
# stretches to 10, and copy REST_AUTH_SITE_KEY to pepper).
#
# Require the `devise-encryptable` gem when using anything other than bcrypt
# config.encryptor = :sha512
# ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
# config.scoped_views = false
# Configure the default scope given to Warden. By default it's the first
# devise role declared in your routes (usually :user).
# config.default_scope = :user
# Set this configuration to false if you want /users/sign_out to sign out
# only the current scope. By default, Devise signs out all scopes.
# config.sign_out_all_scopes = true
# ==> Navigation configuration
# Lists the formats that should be treated as navigational. Formats like
# :html, should redirect to the sign in page when the user does not have
# access, but formats like :xml or :json, should return 401.
#
# If you have any extra navigational formats, like :iphone or :mobile, you
# should add them to the navigational formats lists.
#
# The "*/*" below is required to match Internet Explorer requests.
# config.navigational_formats = ['*/*', :html]
# The default HTTP method used to sign out a resource. Default is :delete.
config
.
sign_out_via
=
:delete
# ==> OmniAuth
# Add a new OmniAuth provider. Check the wiki for more information on setting
# up on your models and hooks.
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
# ==> Warden configuration
# If you want to use other strategies, that are not supported by Devise, or
# change the failure app, you can configure them inside the config.warden block.
#
# config.warden do |manager|
# manager.intercept_401 = false
# manager.default_strategies(scope: :user).unshift :some_external_strategy
# end
# ==> Mountable engine configurations
# When using Devise inside an engine, let's call it `MyEngine`, and this engine
# is mountable, there are some extra configurations to be taken into account.
# The following options are available, assuming the engine is mounted as:
#
# mount MyEngine, at: '/my_engine'
#
# The router that invoked `devise_for`, in the example above, would be:
# config.router_name = :my_engine
#
# When using OmniAuth, Devise cannot automatically set OmniAuth path,
# so you need to do it manually. For the users scope, it would be:
# config.omniauth_path_prefix = '/my_engine/users/auth'
end
134591/Lab_Activity_3/blog/config/initializers/filter_parameter_logging.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# Configure sensitive parameters which will be filtered from the log file.
Rails
.
application
.
config
.
filter_parameters
+=
[
:password
]
134591/Lab_Activity_3/blog/config/initializers/inflections.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# Add new inflection rules using the following format. Inflections
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.acronym 'RESTful'
# end
134591/Lab_Activity_3/blog/config/initializers/mime_types.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf
134591/Lab_Activity_3/blog/config/initializers/session_store.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
Rails
.
application
.
config
.
session_store
:cookie_store
,
key:
'_blog_session'
134591/Lab_Activity_3/blog/config/initializers/wrap_parameters.rb
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
ActiveSupport
.
on_load
(
:action_controller
)
do
wrap_parameters
format:
[
:json
]
if
respond_to?
(
:wrap_parameters
)
end
# To enable root element in JSON for ActiveRecord objects.
# ActiveSupport.on_load(:active_record) do
# self.include_root_in_json = true
# end
134591/Lab_Activity_3/blog/config/locales/devise.en.yml
0 → 100644
View file @
f992ed92
# Additional translations at https://github.com/plataformatec/devise/wiki/I18n
en
:
devise
:
confirmations
:
confirmed
:
"
Your
email
address
has
been
successfully
confirmed."
send_instructions
:
"
You
will
receive
an
email
with
instructions
for
how
to
confirm
your
email
address
in
a
few
minutes."
send_paranoid_instructions
:
"
If
your
email
address
exists
in
our
database,
you
will
receive
an
email
with
instructions
for
how
to
confirm
your
email
address
in
a
few
minutes."
failure
:
already_authenticated
:
"
You
are
already
signed
in."
inactive
:
"
Your
account
is
not
activated
yet."
invalid
:
"
Invalid
%{authentication_keys}
or
password."
locked
:
"
Your
account
is
locked."
last_attempt
:
"
You
have
one
more
attempt
before
your
account
is
locked."
not_found_in_database
:
"
Invalid
%{authentication_keys}
or
password."
timeout
:
"
Your
session
expired.
Please
sign
in
again
to
continue."
unauthenticated
:
"
You
need
to
sign
in
or
sign
up
before
continuing."
unconfirmed
:
"
You
have
to
confirm
your
email
address
before
continuing."
mailer
:
confirmation_instructions
:
subject
:
"
Confirmation
instructions"
reset_password_instructions
:
subject
:
"
Reset
password
instructions"
unlock_instructions
:
subject
:
"
Unlock
instructions"
password_change
:
subject
:
"
Password
Changed"
omniauth_callbacks
:
failure
:
"
Could
not
authenticate
you
from
%{kind}
because
\"
%{reason}
\"
."
success
:
"
Successfully
authenticated
from
%{kind}
account."
passwords
:
no_token
:
"
You
can't
access
this
page
without
coming
from
a
password
reset
email.
If
you
do
come
from
a
password
reset
email,
please
make
sure
you
used
the
full
URL
provided."
send_instructions
:
"
You
will
receive
an
email
with
instructions
on
how
to
reset
your
password
in
a
few
minutes."
send_paranoid_instructions
:
"
If
your
email
address
exists
in
our
database,
you
will
receive
a
password
recovery
link
at
your
email
address
in
a
few
minutes."
updated
:
"
Your
password
has
been
changed
successfully.
You
are
now
signed
in."
updated_not_active
:
"
Your
password
has
been
changed
successfully."
registrations
:
destroyed
:
"
Bye!
Your
account
has
been
successfully
cancelled.
We
hope
to
see
you
again
soon."
signed_up
:
"
Welcome!
You
have
signed
up
successfully."
signed_up_but_inactive
:
"
You
have
signed
up
successfully.
However,
we
could
not
sign
you
in
because
your
account
is
not
yet
activated."
signed_up_but_locked
:
"
You
have
signed
up
successfully.
However,
we
could
not
sign
you
in
because
your
account
is
locked."
signed_up_but_unconfirmed
:
"
A
message
with
a
confirmation
link
has
been
sent
to
your
email
address.
Please
follow
the
link
to
activate
your
account."
update_needs_confirmation
:
"
You
updated
your
account
successfully,
but
we
need
to
verify
your
new
email
address.
Please
check
your
email
and
follow
the
confirm
link
to
confirm
your
new
email
address."
updated
:
"
Your
account
has
been
updated
successfully."
sessions
:
signed_in
:
"
Signed
in
successfully."
signed_out
:
"
Signed
out
successfully."
already_signed_out
:
"
Signed
out
successfully."
unlocks
:
send_instructions
:
"
You
will
receive
an
email
with
instructions
for
how
to
unlock
your
account
in
a
few
minutes."
send_paranoid_instructions
:
"
If
your
account
exists,
you
will
receive
an
email
with
instructions
for
how
to
unlock
it
in
a
few
minutes."
unlocked
:
"
Your
account
has
been
unlocked
successfully.
Please
sign
in
to
continue."
errors
:
messages
:
already_confirmed
:
"
was
already
confirmed,
please
try
signing
in"
confirmation_period_expired
:
"
needs
to
be
confirmed
within
%{period},
please
request
a
new
one"
expired
:
"
has
expired,
please
request
a
new
one"
not_found
:
"
not
found"
not_locked
:
"
was
not
locked"
not_saved
:
one
:
"
1
error
prohibited
this
%{resource}
from
being
saved:"
other
:
"
%{count}
errors
prohibited
this
%{resource}
from
being
saved:"
134591/Lab_Activity_3/blog/config/locales/en.yml
0 → 100644
View file @
f992ed92
# Files in the config/locales directory are used for internationalization
# and are automatically loaded by Rails. If you want to use locales other
# than English, add the necessary files in this directory.
#
# To use the locales, use `I18n.t`:
#
# I18n.t 'hello'
#
# In views, this is aliased to just `t`:
#
# <%= t('hello') %>
#
# To use a different locale, set it with `I18n.locale`:
#
# I18n.locale = :es
#
# This would use the information in config/locales/es.yml.
#
# To learn more, please read the Rails Internationalization guide
# available at http://guides.rubyonrails.org/i18n.html.
en
:
hello
:
"
Hello
world"
134591/Lab_Activity_3/blog/config/routes.rb
0 → 100644
View file @
f992ed92
Rails
.
application
.
routes
.
draw
do
devise_for
:users
root
to:
"pages#index"
resources
:posts
get
"/categories/:id"
,
to:
"categories#show"
namespace
:admin
do
resources
:posts
end
end
134591/Lab_Activity_3/blog/config/secrets.yml
0 → 100644
View file @
f992ed92
# Be sure to restart your server when you modify this file.
# Your secret key is used for verifying the integrity of signed cookies.
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
# You can use `rake secret` to generate a secure secret key.
# Make sure the secrets in this file are kept private
# if you're sharing your code publicly.
development
:
secret_key_base
:
db26b7753500999333071789eac4a6f2bdc3f2c4eda341e1ab89bfc66839685cb1de9c984ac4748080d886128dfd0926da8307c817f4095c6101a085c2d11b3c
test
:
secret_key_base
:
7b6a6bfe9ff738db189ed670b744e8c07aa09b3539f88c9f64889139b9eb70776aa0b83badede1d1f30c1d6ade6f7673e034c362a3770c6561c649d55a7d2b6d
# Do not keep production secrets in the repository,
# instead read values from the environment.
production
:
secret_key_base
:
<%= ENV["SECRET_KEY_BASE"] %>
134591/Lab_Activity_3/blog/db/migrate/20160711044152_create_posts.rb
0 → 100644
View file @
f992ed92
class
CreatePosts
<
ActiveRecord
::
Migration
def
change
create_table
:posts
do
|
t
|
t
.
string
:title
t
.
text
:content
t
.
date
:published_at
t
.
boolean
:is_published
t
.
timestamps
null:
false
end
end
end
134591/Lab_Activity_3/blog/db/migrate/20160712052812_add_category_to_posts.rb
0 → 100644
View file @
f992ed92
class
AddCategoryToPosts
<
ActiveRecord
::
Migration
def
change
add_column
:posts
,
:category
,
:string
end
end
134591/Lab_Activity_3/blog/db/migrate/20160713050944_change_posts_table.rb
0 → 100644
View file @
f992ed92
class
ChangePostsTable
<
ActiveRecord
::
Migration
def
change
remove_column
:posts
,
:category
add_column
:posts
,
:category_id
,
:integer
end
end
134591/Lab_Activity_3/blog/db/migrate/20160713051616_create_categories.rb
0 → 100644
View file @
f992ed92
class
CreateCategories
<
ActiveRecord
::
Migration
def
change
create_table
:categories
do
|
t
|
t
.
string
:name
t
.
timestamps
null:
false
end
end
end
134591/Lab_Activity_3/blog/db/migrate/20160716154259_devise_create_users.rb
0 → 100644
View file @
f992ed92
class
DeviseCreateUsers
<
ActiveRecord
::
Migration
def
change
create_table
:users
do
|
t
|
## Database authenticatable
t
.
string
:email
,
null:
false
,
default:
""
t
.
string
:encrypted_password
,
null:
false
,
default:
""
## Recoverable
t
.
string
:reset_password_token
t
.
datetime
:reset_password_sent_at
## Rememberable
t
.
datetime
:remember_created_at
## Trackable
t
.
integer
:sign_in_count
,
default:
0
,
null:
false
t
.
datetime
:current_sign_in_at
t
.
datetime
:last_sign_in_at
t
.
string
:current_sign_in_ip
t
.
string
:last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at
t
.
timestamps
null:
false
end
add_index
:users
,
:email
,
unique:
true
add_index
:users
,
:reset_password_token
,
unique:
true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
134591/Lab_Activity_3/blog/db/migrate/20160716154748_add_user_to_posts.rb
0 → 100644
View file @
f992ed92
class
AddUserToPosts
<
ActiveRecord
::
Migration
def
change
add_reference
:posts
,
:user
,
index:
true
,
foreign_key:
true
end
end
134591/Lab_Activity_3/blog/db/schema.rb
0 → 100644
View file @
f992ed92
# encoding: UTF-8
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# Note that this schema.rb definition is the authoritative source for your
# database schema. If you need to create the application database on another
# system, you should be using db:schema:load, not running all the migrations
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
20160716154748
)
do
create_table
"categories"
,
force: :cascade
do
|
t
|
t
.
string
"name"
t
.
datetime
"created_at"
,
null:
false
t
.
datetime
"updated_at"
,
null:
false
end
create_table
"posts"
,
force: :cascade
do
|
t
|
t
.
string
"title"
t
.
text
"content"
t
.
date
"published_at"
t
.
boolean
"is_published"
t
.
datetime
"created_at"
,
null:
false
t
.
datetime
"updated_at"
,
null:
false
t
.
integer
"category_id"
t
.
integer
"user_id"
end
add_index
"posts"
,
[
"user_id"
],
name:
"index_posts_on_user_id"
create_table
"users"
,
force: :cascade
do
|
t
|
t
.
string
"email"
,
default:
""
,
null:
false
t
.
string
"encrypted_password"
,
default:
""
,
null:
false
t
.
string
"reset_password_token"
t
.
datetime
"reset_password_sent_at"
t
.
datetime
"remember_created_at"
t
.
integer
"sign_in_count"
,
default:
0
,
null:
false
t
.
datetime
"current_sign_in_at"
t
.
datetime
"last_sign_in_at"
t
.
string
"current_sign_in_ip"
t
.
string
"last_sign_in_ip"
t
.
datetime
"created_at"
,
null:
false
t
.
datetime
"updated_at"
,
null:
false
end
add_index
"users"
,
[
"email"
],
name:
"index_users_on_email"
,
unique:
true
add_index
"users"
,
[
"reset_password_token"
],
name:
"index_users_on_reset_password_token"
,
unique:
true
end
134591/Lab_Activity_3/blog/db/seeds.rb
0 → 100644
View file @
f992ed92
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
# Mayor.create(name: 'Emanuel', city: cities.first)
134591/Lab_Activity_3/blog/lib/assets/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/lib/tasks/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/log/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/public/404.html
0 → 100644
View file @
f992ed92
<!DOCTYPE html>
<html>
<head>
<title>
The page you were looking for doesn't exist (404)
</title>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1"
>
<style>
body
{
background-color
:
#EFEFEF
;
color
:
#2E2F30
;
text-align
:
center
;
font-family
:
arial
,
sans-serif
;
margin
:
0
;
}
div
.dialog
{
width
:
95%
;
max-width
:
33em
;
margin
:
4em
auto
0
;
}
div
.dialog
>
div
{
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#BBB
;
border-top
:
#B00100
solid
4px
;
border-top-left-radius
:
9px
;
border-top-right-radius
:
9px
;
background-color
:
white
;
padding
:
7px
12%
0
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
h1
{
font-size
:
100%
;
color
:
#730E15
;
line-height
:
1.5em
;
}
div
.dialog
>
p
{
margin
:
0
0
1em
;
padding
:
1em
;
background-color
:
#F7F7F7
;
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#999
;
border-bottom-left-radius
:
4px
;
border-bottom-right-radius
:
4px
;
border-top-color
:
#DADADA
;
color
:
#666
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
</style>
</head>
<body>
<!-- This file lives in public/404.html -->
<div
class=
"dialog"
>
<div>
<h1>
The page you were looking for doesn't exist.
</h1>
<p>
You may have mistyped the address or the page may have moved.
</p>
</div>
<p>
If you are the application owner check the logs for more information.
</p>
</div>
</body>
</html>
134591/Lab_Activity_3/blog/public/422.html
0 → 100644
View file @
f992ed92
<!DOCTYPE html>
<html>
<head>
<title>
The change you wanted was rejected (422)
</title>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1"
>
<style>
body
{
background-color
:
#EFEFEF
;
color
:
#2E2F30
;
text-align
:
center
;
font-family
:
arial
,
sans-serif
;
margin
:
0
;
}
div
.dialog
{
width
:
95%
;
max-width
:
33em
;
margin
:
4em
auto
0
;
}
div
.dialog
>
div
{
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#BBB
;
border-top
:
#B00100
solid
4px
;
border-top-left-radius
:
9px
;
border-top-right-radius
:
9px
;
background-color
:
white
;
padding
:
7px
12%
0
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
h1
{
font-size
:
100%
;
color
:
#730E15
;
line-height
:
1.5em
;
}
div
.dialog
>
p
{
margin
:
0
0
1em
;
padding
:
1em
;
background-color
:
#F7F7F7
;
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#999
;
border-bottom-left-radius
:
4px
;
border-bottom-right-radius
:
4px
;
border-top-color
:
#DADADA
;
color
:
#666
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
</style>
</head>
<body>
<!-- This file lives in public/422.html -->
<div
class=
"dialog"
>
<div>
<h1>
The change you wanted was rejected.
</h1>
<p>
Maybe you tried to change something you didn't have access to.
</p>
</div>
<p>
If you are the application owner check the logs for more information.
</p>
</div>
</body>
</html>
134591/Lab_Activity_3/blog/public/500.html
0 → 100644
View file @
f992ed92
<!DOCTYPE html>
<html>
<head>
<title>
We're sorry, but something went wrong (500)
</title>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1"
>
<style>
body
{
background-color
:
#EFEFEF
;
color
:
#2E2F30
;
text-align
:
center
;
font-family
:
arial
,
sans-serif
;
margin
:
0
;
}
div
.dialog
{
width
:
95%
;
max-width
:
33em
;
margin
:
4em
auto
0
;
}
div
.dialog
>
div
{
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#BBB
;
border-top
:
#B00100
solid
4px
;
border-top-left-radius
:
9px
;
border-top-right-radius
:
9px
;
background-color
:
white
;
padding
:
7px
12%
0
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
h1
{
font-size
:
100%
;
color
:
#730E15
;
line-height
:
1.5em
;
}
div
.dialog
>
p
{
margin
:
0
0
1em
;
padding
:
1em
;
background-color
:
#F7F7F7
;
border
:
1px
solid
#CCC
;
border-right-color
:
#999
;
border-left-color
:
#999
;
border-bottom-color
:
#999
;
border-bottom-left-radius
:
4px
;
border-bottom-right-radius
:
4px
;
border-top-color
:
#DADADA
;
color
:
#666
;
box-shadow
:
0
3px
8px
rgba
(
50
,
50
,
50
,
0.17
);
}
</style>
</head>
<body>
<!-- This file lives in public/500.html -->
<div
class=
"dialog"
>
<div>
<h1>
We're sorry, but something went wrong.
</h1>
</div>
<p>
If you are the application owner check the logs for more information.
</p>
</div>
</body>
</html>
134591/Lab_Activity_3/blog/public/favicon.ico
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/public/robots.txt
0 → 100644
View file @
f992ed92
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
#
# To ban all spiders from the entire site uncomment the next two lines:
# User-agent: *
# Disallow: /
134591/Lab_Activity_3/blog/test/controllers/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/fixtures/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/fixtures/categories.yml
0 → 100644
View file @
f992ed92
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one
:
name
:
MyString
two
:
name
:
MyString
134591/Lab_Activity_3/blog/test/fixtures/posts.yml
0 → 100644
View file @
f992ed92
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one
:
title
:
MyString
content
:
MyText
published_at
:
2016-07-11
is_published
:
false
two
:
title
:
MyString
content
:
MyText
published_at
:
2016-07-11
is_published
:
false
134591/Lab_Activity_3/blog/test/fixtures/users.yml
0 → 100644
View file @
f992ed92
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
# This model initially had no columns defined. If you add columns to the
# model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below
#
one
:
{}
# column: value
#
two
:
{}
# column: value
134591/Lab_Activity_3/blog/test/helpers/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/integration/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/mailers/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/models/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/test/models/category_test.rb
0 → 100644
View file @
f992ed92
require
'test_helper'
class
CategoryTest
<
ActiveSupport
::
TestCase
# test "the truth" do
# assert true
# end
end
134591/Lab_Activity_3/blog/test/models/post_test.rb
0 → 100644
View file @
f992ed92
require
'test_helper'
class
PostTest
<
ActiveSupport
::
TestCase
# test "the truth" do
# assert true
# end
end
134591/Lab_Activity_3/blog/test/models/user_test.rb
0 → 100644
View file @
f992ed92
require
'test_helper'
class
UserTest
<
ActiveSupport
::
TestCase
# test "the truth" do
# assert true
# end
end
134591/Lab_Activity_3/blog/test/test_helper.rb
0 → 100644
View file @
f992ed92
ENV
[
'RAILS_ENV'
]
||=
'test'
require
File
.
expand_path
(
'../../config/environment'
,
__FILE__
)
require
'rails/test_help'
class
ActiveSupport
::
TestCase
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
fixtures
:all
# Add more helper methods to be used by all tests here...
end
134591/Lab_Activity_3/blog/vendor/assets/javascripts/.keep
0 → 100644
View file @
f992ed92
134591/Lab_Activity_3/blog/vendor/assets/stylesheets/.keep
0 → 100644
View file @
f992ed92
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment