changed a few things

This commit is contained in:
nilsding 2014-10-28 06:36:38 +01:00
parent f4da926a42
commit ae66877cde
31 changed files with 497 additions and 205 deletions

14
.gitignore vendored
View File

@ -1,16 +1,12 @@
# 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
/tmp
/config/database.yml
.sass-cache/
coverage/
*.swp

60
Gemfile
View File

@ -1,49 +1,37 @@
source 'https://rubygems.org'
gem 'rails', '4.1.6'
gem 'pg', group: :postgres
gem 'mysql2', group: :mysql
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'coffee-rails', '~> 4.1.0'
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
gem 'jbuilder', '~> 2.2.4'
gem 'sdoc', '~> 0.4.1', group: :doc
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring', group: :development
gem 'bcrypt', '~> 3.1.7'
# 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
# Use debugger
# gem 'debugger', group: [:development, :test]
gem 'thin'
gem 'bootstrap-sass', '~> 3.2.0.1'
gem 'bootswatch-rails', '~> 3.2.0'
gem 'haml'
gem 'semantic-ui-sass', '~> 0.19.3.0'
gem 'will_paginate'
gem 'will_paginate-bootstrap'
gem 'http_accept_language'
gem 'devise'
gem 'bootstrap_form'
gem 'font-kit-rails'
gem 'nprogress-rails'
group :development do
gem 'thin'
gem 'spring'
end
group :production do
gem 'unicorn', group: :production
end
group :test do
gem 'simplecov'
end

View File

@ -1,161 +1,173 @@
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.1.4)
actionpack (= 4.1.4)
actionview (= 4.1.4)
mail (~> 2.5.4)
actionpack (4.1.4)
actionview (= 4.1.4)
activesupport (= 4.1.4)
actionmailer (4.1.6)
actionpack (= 4.1.6)
actionview (= 4.1.6)
mail (~> 2.5, >= 2.5.4)
actionpack (4.1.6)
actionview (= 4.1.6)
activesupport (= 4.1.6)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
actionview (4.1.4)
activesupport (= 4.1.4)
actionview (4.1.6)
activesupport (= 4.1.6)
builder (~> 3.1)
erubis (~> 2.7.0)
activemodel (4.1.4)
activesupport (= 4.1.4)
activemodel (4.1.6)
activesupport (= 4.1.6)
builder (~> 3.1)
activerecord (4.1.4)
activemodel (= 4.1.4)
activesupport (= 4.1.4)
activerecord (4.1.6)
activemodel (= 4.1.6)
activesupport (= 4.1.6)
arel (~> 5.0.0)
activesupport (4.1.4)
activesupport (4.1.6)
i18n (~> 0.6, >= 0.6.9)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.1)
tzinfo (~> 1.1)
arel (5.0.1.20140414130214)
bcrypt (3.1.7)
bootstrap-sass (3.2.0.1)
sass (~> 3.2)
bootstrap_form (2.1.1)
bootswatch-rails (3.2.0)
railties (>= 3.1)
bcrypt (3.1.9)
builder (3.2.2)
coffee-rails (4.0.1)
coffee-rails (4.1.0)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
coffee-script (2.3.0)
coffee-script-source
execjs
coffee-script-source (1.7.1)
coffee-script-source (1.8.0)
daemons (1.1.9)
devise (3.2.4)
devise (3.4.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
responders
thread_safe (~> 0.1)
warden (~> 1.2.3)
docile (1.1.5)
erubis (2.7.0)
eventmachine (1.0.3)
execjs (2.2.1)
execjs (2.2.2)
font-kit-rails (1.0.2)
rails
haml (4.0.5)
tilt
hike (1.2.3)
http_accept_language (2.0.2)
i18n (0.6.11)
jbuilder (2.1.3)
jbuilder (2.2.4)
activesupport (>= 3.0.0, < 5)
multi_json (~> 1.2)
jquery-rails (3.1.1)
jquery-rails (3.1.2)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.1)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.25.1)
minitest (5.4.0)
kgio (2.9.2)
mail (2.6.1)
mime-types (>= 1.16, < 3)
mime-types (2.4.3)
minitest (5.4.2)
multi_json (1.10.1)
mysql2 (0.3.16)
nprogress-rails (0.1.6.3)
orm_adapter (0.5.0)
polyglot (0.3.5)
pg (0.17.1)
rack (1.5.2)
rack-test (0.6.2)
rack (>= 1.0)
rails (4.1.4)
actionmailer (= 4.1.4)
actionpack (= 4.1.4)
actionview (= 4.1.4)
activemodel (= 4.1.4)
activerecord (= 4.1.4)
activesupport (= 4.1.4)
rails (4.1.6)
actionmailer (= 4.1.6)
actionpack (= 4.1.6)
actionview (= 4.1.6)
activemodel (= 4.1.6)
activerecord (= 4.1.6)
activesupport (= 4.1.6)
bundler (>= 1.3.0, < 2.0)
railties (= 4.1.4)
railties (= 4.1.6)
sprockets-rails (~> 2.0)
railties (4.1.4)
actionpack (= 4.1.4)
activesupport (= 4.1.4)
railties (4.1.6)
actionpack (= 4.1.6)
activesupport (= 4.1.6)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
raindrops (0.13.0)
rake (10.3.2)
rdoc (4.1.1)
rdoc (4.1.2)
json (~> 1.4)
responders (1.1.1)
railties (>= 3.2, < 4.2)
sass (3.2.19)
sass-rails (4.0.3)
railties (>= 4.0.0, < 5.0)
sass (~> 3.2.0)
sprockets (~> 2.8, <= 2.11.0)
sprockets-rails (~> 2.0)
sdoc (0.4.0)
json (~> 1.8)
rdoc (~> 4.0, < 5.0)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
semantic-ui-sass (0.19.3.0)
sass (~> 3.2)
simplecov (0.9.1)
docile (~> 1.1.0)
multi_json (~> 1.0)
simplecov-html (~> 0.8.0)
simplecov-html (0.8.0)
spring (1.1.3)
sprockets (2.11.0)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.1.3)
sprockets-rails (2.2.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (~> 2.8)
sqlite3 (1.3.9)
thin (1.6.2)
daemons (>= 1.0.9)
eventmachine (>= 1.0.0)
rack (>= 1.0.0)
sprockets (>= 2.8, < 4.0)
thin (1.6.3)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0)
rack (~> 1.0)
thor (0.19.1)
thread_safe (0.3.4)
tilt (1.4.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
turbolinks (2.2.2)
turbolinks (2.4.0)
coffee-rails
tzinfo (1.2.1)
tzinfo (1.2.2)
thread_safe (~> 0.1)
uglifier (2.5.3)
execjs (>= 0.3.0)
json (>= 1.8.0)
unicorn (4.8.3)
kgio (~> 2.6)
rack
raindrops (~> 0.7)
warden (1.2.3)
rack (>= 1.0)
will_paginate (3.0.7)
will_paginate-bootstrap (1.0.1)
will_paginate (>= 3.0.3)
PLATFORMS
ruby
DEPENDENCIES
bootstrap-sass (~> 3.2.0.1)
bootstrap_form
bootswatch-rails (~> 3.2.0)
coffee-rails (~> 4.0.0)
bcrypt (~> 3.1.7)
coffee-rails (~> 4.1.0)
devise
font-kit-rails
haml
http_accept_language
jbuilder (~> 2.0)
jbuilder (~> 2.2.4)
jquery-rails
rails (= 4.1.4)
mysql2
nprogress-rails
pg
rails (= 4.1.6)
sass-rails (~> 4.0.3)
sdoc (~> 0.4.0)
sdoc (~> 0.4.1)
semantic-ui-sass (~> 0.19.3.0)
simplecov
spring
sqlite3
thin
turbolinks
uglifier (>= 1.3.0)
unicorn
will_paginate
will_paginate-bootstrap

115
README.md
View File

@ -1,20 +1,105 @@
# README
# justask [![build status](https://ci.rrerr.net/projects/9/status.png?ref=master)](https://ci.rrerr.net/projects/9?ref=master)
This README would normally document whatever steps are necessary to get the
application up and running.
## Requirements
Things you may want to cover:
- UNIX-like system (Linux, *BSD, ...)
- ruby 1.9.3+
- Bundler
- PostgreSQL or MySQL
* 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
* ...
## Installation
### Database
Please feel free to use a different markup language if you do not plan to run
`rake doc:app`.
#### PostgreSQL
```
$ sudo -u postgres psql -d template1
template1=# CREATE USER justask CREATEDB;
template1=# CREATE DATABASE justask_production OWNER justask;
template1=# \q
```
Try connecting to the database:
```
$ psql -U justask -d justask_production
```
#### MySQL
```
$ mysql -u root -p
# change 'hack me' in the command below to a real password
mysql> CREATE USER 'justask'@'localhost' IDENTIFIED BY 'hack me';
mysql> SET storage_engine=INNODB;
mysql> CREATE DATABASE IF NOT EXISTS `justask_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `justask_production`.* TO 'justask'@'localhost';
mysql> \q
```
Try connecting to the database:
```
$ mysql -u justask -p -D justask_production
```
### justask
#### Clone the Source
```
$ git clone https://git.rrerr.net/nilsding/justask.git justask
```
#### Configure It
```
# Change into the justask directory
$ cd justask
# Copy the example config
$ cp config/justask.yml.example config/justask.yml
# Edit the configuration file
$ vi config/justask.yml
```
#### Database Configuration
```
# PostgreSQL only:
$ cp config/database.yml.postgres config/database.yml
# MySQL only:
$ cp config/database.yml.mysql config/database.yml
# MySQL and remote PostgreSQL only:
$ vi config/database.yml
# Both:
# Make database.yml readable only for you
chmod o-rwx config/database.yml
```
#### Install Gems
```
# For PostgreSQL (note: the option says "without ... mysql")
$ bundle install --deployment --without development test mysql
# Or, if you use MySQL
$ bundle install --deployment --without development test postgres
```
#### Initialize Database
```
$ bundle exec rake db:migrate RAILS_ENV=production
```
#### Compile Assets
```
$ bundle exec rake assets:precompile RAILS_ENV=production
```

View File

@ -1,5 +1,9 @@
#= require jquery
#= require jquery_ujs
#= require turbolinks
#= require bootstrap
#= require semantic-ui
#= require_tree .
$(document).ready ->
$('.ui.dropdown').dropdown
on: "hover"

View File

@ -1,9 +1,73 @@
/*
*= require rails_bootstrap_forms
*= require font-kit-rails/open-sans
*= require_self
*/
@import "bootswatch/flatly/variables";
@import "bootstrap";
body { padding-top: $navbar-height; }
@import "bootswatch/flatly/bootswatch";
@import "semantic-ui";
@import "base";
html,
body {
font-size: 15px;
height: 100%;
}
body {
font-family: "Open Sans", "Helvetica Neue", "Helvetica", "DejaVu Sans", "Arial", sans-serif;
background: #FFFFFF;
margin: 0px;
padding: 0px;
color: #555555;
text-rendering: optimizeLegibility;
min-width: 320px;
}
/* mobile only */
@media only screen and (max-width : 768px) {
.ui.page.grid.segment {
padding-top: 2rem;
padding-bottom: 2rem;
}
h1.ui.header {
font-size: 1.5em;
}
.masthead.segment {
background-size: auto;
}
.masthead.segment .information {
margin-left: 190px;
}
.masthead.segment .image {
bottom: -65px;
width: 150px;
}
.masthead.segment .button {
font-size: 1rem;
}
.overview .divided.grid .header .icon {
font-size: 1.5em;
}
.overview .divided.grid .header + p {
min-height: 0px;
}
.masthead.segment .column {
font-size: 0.7rem;
}
.masthead.segment .column p {
display: none;
}
}
@media only screen and (max-width : 1000px) {
}

0
app/dir/x Normal file
View File

View File

@ -1,6 +1,9 @@
module ApplicationHelper
def nav_entry(body, path)
content_tag(:li, link_to(body, path), class: ('active' if current_page? path))
def nav_entry(body, path, options={})
options = {class: "", icon: "", label: "", label_color: "red"}.merge options
body = semantic_icon(options[:icon]) + " " + body unless options[:icon].empty?
body = body + " " + content_tag(:div, options[:label], class: "ui #{options[:label_color]} label") unless options[:label].empty?
link_to(body, path, class: "#{'active' if current_page? path} item #{options[:class]}")
end
##

5
app/models/answer.rb Normal file
View File

@ -0,0 +1,5 @@
class Answer < ActiveRecord::Base
belongs_to :user
belongs_to :question
has_many :comments
end

4
app/models/comment.rb Normal file
View File

@ -0,0 +1,4 @@
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :answer
end

4
app/models/question.rb Normal file
View File

@ -0,0 +1,4 @@
class Question < ActiveRecord::Base
belongs_to :user
has_one :answer
end

View File

@ -7,6 +7,10 @@ class User < ActiveRecord::Base
# attr_accessor :login
has_many :questions, dependent: :destroy
has_many :answers, dependent: :destroy
has_many :comments, dependent: :destroy
SCREEN_NAME_REGEX = /\A[a-zA-Z0-9_]{1,16}\z/
validates :screen_name, presence: true, format: { with: SCREEN_NAME_REGEX }, uniqueness: { case_sensitive: false }

View File

@ -1,6 +1,6 @@
.container
%h1 Resend confirmation instructions
= bootstrap_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
= f.email_field :screen_name, autofocus: true, label: "User name"

View File

@ -1,6 +1,6 @@
.container
%h1 Change your password
= bootstrap_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
= devise_error_messages!
= f.hidden_field :reset_password_token

View File

@ -1,6 +1,6 @@
.container
%h1 Forgot your password?
= bootstrap_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
= f.text_field :screen_name, autofocus: true, "User name"

View File

@ -1,6 +1,6 @@
.container
%h1 Edit #{resource_name.to_s.humanize}
= bootstrap_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
= devise_error_messages!
= f.text_field :screen_name, autofocus: true, label: "User name"

View File

@ -1,7 +1,7 @@
.container
%h1 Sign up
= bootstrap_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= devise_error_messages!
= f.text_field :screen_name, autofocus: true, label: "User name"

View File

@ -2,7 +2,7 @@
%h1 Sign in
= render 'layouts/messages'
= bootstrap_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
= f.text_field :login, autofocus: true, label: "User name"
= f.password_field :password, autocomplete: "off", label: "Password"

View File

@ -2,7 +2,7 @@
%h1 Resend unlock instructions
= render 'layouts/messages'
= bootstrap_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
= f.email_field :email, autofocus: true, label: "Email address"

View File

@ -1,26 +1,19 @@
%nav.navbar.navbar-default.navbar-fixed-top{role: "navigation"}
.container
.navbar-header
%button.navbar-toggle{"data-target" => "#j2-main-navbar-collapse", "data-toggle" => "collapse", type: "button"}
%span.sr-only Toggle navigation
%span.icon-bar
%span.icon-bar
%span.icon-bar
%a.navbar-brand{href: "/"} justask2
#j2-main-navbar-collapse.collapse.navbar-collapse
%ul.nav.navbar-nav
= nav_entry "Front", "/"
%ul.nav.navbar-nav.navbar-right
- if user_signed_in?
%li.dropdown
%a.dropdown-toggle{href: "#", "data-toggle" => "dropdown"}
= current_user.screen_name
%b.caret
%ul.dropdown-menu
%li= link_to "Profile", edit_user_registration_path
%li= link_to "Settings", "#"
%li.divider
%li= link_to "Logout", destroy_user_session_path, method: :delete
- else
= nav_entry "Sign in", new_user_session_path
= nav_entry "Sign up", new_user_registration_path
%nav.ui.fixed.inverted.main.menu
%h3.header.item justask
= nav_entry "Home", "/", icon: "home"
- if user_signed_in?
= nav_entry "Inbox", "/inbox", icon: "inbox", label: "2"
- else
= nav_entry "About", "/about", icon: ""
.right.menu
- if user_signed_in?
.ui.dropdown.item
= current_user.screen_name
= semantic_icon "dropdown"
.menu
= link_to "Profile", edit_user_registration_path, class: "item"
= link_to "Settings", "#", class: "item"
= link_to "Logout", destroy_user_session_path, method: :delete, class: "item"
- else
= nav_entry "Sign in", new_user_session_path #, "right floated text"
= nav_entry "Sign up", new_user_registration_path #, "right floated text"

View File

@ -1,7 +1,7 @@
!!! 5
%html
%head
%title justask2
%title justask
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
@ -11,5 +11,5 @@
- if Rails.env.development?
%hr
.container
%p.text-danger EVIL DEBUG MODE OF DOOM ENABLED!!!
%p.text-danger Debug output:
= debug params

View File

@ -6,7 +6,7 @@ require 'rails/all'
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module Justask2
module Justask
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers

View File

@ -1,25 +0,0 @@
# 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

42
config/database.yml.mysql Normal file
View File

@ -0,0 +1,42 @@
#
# PRODUCTION
#
production:
adapter: mysql2
encoding: utf8
collation: utf8_general_ci
reconnect: false
database: justask_production
pool: 10
username: justask
password: "hack me"
# host: localhost
# socket: /tmp/mysql.sock
#
# Development specific
#
development:
adapter: mysql2
encoding: utf8
collation: utf8_general_ci
reconnect: false
database: justask_development
pool: 5
username: root
password: "hack me twice"
# socket: /tmp/mysql.sock
# 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: &test
adapter: mysql2
encoding: utf8
collation: utf8_general_ci
reconnect: false
database: justask_test
pool: 5
username: root
password: "hack me twice"
# socket: /tmp/mysql.sock

View File

@ -0,0 +1,34 @@
#
# PRODUCTION
#
production:
adapter: postgresql
encoding: unicode
database: justask_production
pool: 10
# username: justask
# password:
# host: localhost
# port: 5432
#
# Development specific
#
development:
adapter: postgresql
encoding: unicode
database: justask_development
pool: 5
username: postgres
password:
# 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: &test
adapter: postgresql
encoding: unicode
database: justask_test
pool: 5
username: postgres
password:

View File

@ -1,3 +1,3 @@
# Be sure to restart your server when you modify this file.
Rails.application.config.session_store :cookie_store, key: '_justask2_session'
Rails.application.config.session_store :cookie_store, key: '_justask_session'

View File

@ -0,0 +1,13 @@
class CreateQuestions < ActiveRecord::Migration
def change
create_table :questions do |t|
t.string :content
t.boolean :author_is_anonymous
t.string :author_name
t.string :author_email
t.timestamps
end
add_index :questions, [:user_id, :created_at]
end
end

View File

@ -0,0 +1,14 @@
class CreateAnswers < ActiveRecord::Migration
def change
create_table :answers do |t|
t.string :content
t.integer :question_id
t.integer :comments
t.integer :likes
t.integer :user_id
t.timestamps
end
add_index :answers, [:user_id, :created_at]
end
end

View File

@ -0,0 +1,12 @@
class CreateComments < ActiveRecord::Migration
def change
create_table :comments do |t|
t.string :content
t.integer :answer_id
t.integer :user_id
t.timestamps
end
add_index :comments, [:user_id, :created_at]
end
end

View File

@ -11,7 +11,44 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20140801103309) do
ActiveRecord::Schema.define(version: 20140801175137) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "answers", force: true do |t|
t.string "content"
t.integer "question_id"
t.integer "comments"
t.integer "likes"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "answers", ["user_id", "created_at"], name: "index_answers_on_user_id_and_created_at", using: :btree
create_table "comments", force: true do |t|
t.string "content"
t.integer "answer_id"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "comments", ["user_id", "created_at"], name: "index_comments_on_user_id_and_created_at", using: :btree
create_table "questions", force: true do |t|
t.string "content"
t.boolean "author_is_anonymous"
t.string "author_name"
t.string "author_email"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "questions", ["user_id", "created_at"], name: "index_questions_on_user_id_and_created_at", using: :btree
create_table "users", force: true do |t|
t.string "email", default: "", null: false
@ -29,8 +66,8 @@ ActiveRecord::Schema.define(version: 20140801103309) do
t.string "screen_name"
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
add_index "users", ["screen_name"], name: "index_users_on_screen_name", unique: true
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
add_index "users", ["screen_name"], name: "index_users_on_screen_name", unique: true, using: :btree
end

View File

@ -1,3 +1,6 @@
require 'simplecov'
SimpleCov.start
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'