Delete badly written code

This commit is contained in:
Petko Bordjukov 2014-11-04 21:06:43 +02:00
parent f47b7a7621
commit 8220ee1d58
15 changed files with 2 additions and 615 deletions

View File

@ -1,5 +1,5 @@
class HomeController < ApplicationController class HomeController < ApplicationController
def index def index
@current_conference = Conference.current || Conference.new @current_conference = Conference.first
end end
end end

View File

@ -1,60 +0,0 @@
class LecturesController < ApplicationController
before_filter :authenticate_user!
before_action :assign_lecture, only: [:show, :edit, :update, :confirm]
def index
@lectures = Lecture.where user: current_user
end
def new
@lecture = Lecture.new
end
def create
@lecture = current_user.lectures.build lecture_params
if @lecture.save
after_save_redirection
else
render :new, status: :unprocessable_entity
end
end
def edit
end
def update
if @lecture.update lecture_params
after_save_redirection
else
render :edit, status: :unprocessable_entity
end
end
def show
end
def confirm
@lecture.touch :confirmed_at
redirect_to @lecture, notice: I18n.t(:lecture_was_successfully_confirmed)
end
private
def assign_lecture
@lecture = current_user.lectures.find params[:id]
end
def lecture_params
params.require(:lecture).permit [:title, :subtitle, :length, :language, :abstract, :description, :notes, :track_id, :agreement]
end
def after_save_redirection
if current_user.speaker_profile.present?
redirect_to @lecture
else
redirect_to edit_user_registration_path, alert: I18n.t(:please_fill_in_your_speaker_profile)
end
end
end

View File

@ -1,35 +0,0 @@
class RegistrationsController < Devise::RegistrationsController
def edit
resource.build_speaker_profile unless resource.speaker_profile.present?
end
def update
@user = User.find(current_user.id)
successfully_updated = if needs_password?(@user, params)
@user.update_with_password(devise_parameter_sanitizer.sanitize(:account_update))
else
# remove the virtual current_password attribute
# update_without_password doesn't know how to ignore it
params[:user].delete(:current_password)
@user.update_without_password(devise_parameter_sanitizer.sanitize(:account_update))
end
if successfully_updated
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case their password changed
sign_in @user, :bypass => true
redirect_to after_update_path_for(@user)
else
render "edit"
end
end
private
def needs_password?(user, params)
user.email != params[:user][:email] ||
params[:user][:password].present? ||
params[:user][:password_confirmation].present?
end
end

View File

@ -1,12 +0,0 @@
class SessionsController < Devise::SessionsController
def after_sign_in_path_for(user)
stored_location = stored_location_for user
if user.speaker_profile.present? || stored_location
stored_location || signed_in_root_path(user)
else
flash[:alert] = I18n.t(:please_fill_in_your_speaker_profile)
edit_user_registration_path
end
end
end

View File

@ -1,59 +0,0 @@
class WorkshopsController < ApplicationController
before_filter :authenticate_user!
before_action :assign_workshop, only: [:show, :edit, :update, :confirm]
def index
@workshops = Workshop.where user: current_user
end
def new
@workshop = Workshop.new
end
def create
@workshop = current_user.workshops.build workshop_params
if @workshop.save
after_save_redirection
else
render :new, status: :unprocessable_entity
end
end
def edit
end
def update
if @workshop.update workshop_params
after_save_redirection
else
render :edit, status: :unprocessable_entity
end
end
def show
end
def confirm
@workshop.touch :confirmed_at
redirect_to @workshop, notice: I18n.t(:workshop_was_successfully_confirmed)
end
private
def assign_workshop
@workshop = current_user.workshops.find params[:id]
end
def workshop_params
params.require(:workshop).permit [:title, :subtitle, :length, :language, :abstract, :description, :notes, :track_id, :agreement]
end
def after_save_redirection
if current_user.speaker_profile.present?
redirect_to @workshop
else
redirect_to edit_user_registration_path, alert: I18n.t(:please_fill_in_your_speaker_profile)
end
end
end

View File

@ -1,17 +1,5 @@
Rails.application.routes.draw do Rails.application.routes.draw do
resources :lectures, only: [:index, :new, :create, :edit, :update, :show] do devise_for :users
member do
get 'confirm'
end
end
resources :workshops, only: [:index, :new, :create, :edit, :update, :show] do
member do
get 'confirm'
end
end
devise_for :users, controllers: {registrations: 'registrations', sessions: 'sessions'}
namespace :management do namespace :management do
get '/', to: 'events#index' get '/', to: 'events#index'
@ -45,58 +33,4 @@ Rails.application.routes.draw do
end end
root 'home#index' root 'home#index'
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
# root 'welcome#index'
# Example of regular route:
# get 'products/:id' => 'catalog#view'
# Example of named route that can be invoked with purchase_url(id: product.id)
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
# Example resource route (maps HTTP verbs to controller actions automatically):
# resources :products
# Example resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# Example resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# Example resource route with more complex sub-resources:
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', on: :collection
# end
# end
# Example resource route with concerns:
# concern :toggleable do
# post 'toggle'
# end
# resources :posts, concerns: :toggleable
# resources :photos, concerns: :toggleable
# Example resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
end end

View File

@ -1,78 +0,0 @@
require 'rails_helper'
RSpec.describe LecturesController, type: :controller do
let(:user) { create :user, confirmed_at: Time.now }
before do
sign_in user
end
describe 'GET index' do
it 'returns HTTP Success status code'
it 'assigns the lectures of the current user to @lectures'
end
describe 'GET new' do
it 'returns HTTP Success status code' do
get :new
expect(response).to be_success
end
it 'assigns a blank lecture to @lecture'
end
describe 'POST create' do
it 'assigns the new lecture to @lecture'
context 'when passed correct parameters' do
it 'creates a new lecture'
it 'redirects to the created lecture'
end
context 'when passed incorrect parameters' do
it 'renders the edit template'
it 'returns HTTP Unprocessable Entity status code'
end
end
describe 'GET edit' do
context 'when the lecture exists' do
it 'returns http success'
it 'assigns the lecture to @lecture'
end
context 'when the lecture does not exist' do
it 'returns HTTP Not Found status code'
end
end
describe 'PUT update' do
context 'when the lecture does not exist' do
it 'returns HTTP Not Found status code'
end
context 'when the lecture exists' do
it 'assigns the lecture to @lecture'
context 'when passed correct parameters' do
it 'redirects to the updated lecture'
end
context 'when passed incorrect parameters' do
it 'renders the edit template'
it 'returns HTTP Unprocessable Entity status code'
end
end
end
describe 'GET show' do
context 'when the lecture exists' do
it 'returns HTTP Success status code'
it 'assigns the lecture to @lecture'
end
context 'when the lecture does not exist' do
it 'returns HTTP Not Found status code'
end
end
end

View File

@ -1,78 +0,0 @@
require 'rails_helper'
RSpec.describe WorkshopsController, type: :controller do
let(:user) { create :user, confirmed_at: Time.now }
before do
sign_in user
end
describe 'GET index' do
it 'returns HTTP Success status code'
it 'assigns the workshops of the current user to @workshops'
end
describe 'GET new' do
it 'returns HTTP Success status code' do
get :new
expect(response).to be_success
end
it 'assigns a blank workshop to @workshop'
end
describe 'POST create' do
it 'assigns the new workshop to @workshop'
context 'when passed correct parameters' do
it 'creates a new workshop'
it 'redirects to the created workshop'
end
context 'when passed incorrect parameters' do
it 'renders the edit template'
it 'returns HTTP Unprocessable Entity status code'
end
end
describe 'GET edit' do
context 'when the workshop exists' do
it 'returns http success'
it 'assigns the workshop to @workshop'
end
context 'when the workshop does not exist' do
it 'returns HTTP Not Found status code'
end
end
describe 'PUT update' do
context 'when the workshop does not exist' do
it 'returns HTTP Not Found status code'
end
context 'when the workshop exists' do
it 'assigns the workshop to @workshop'
context 'when passed correct parameters' do
it 'redirects to the updated workshop'
end
context 'when passed incorrect parameters' do
it 'renders the edit template'
it 'returns HTTP Unprocessable Entity status code'
end
end
end
describe 'GET show' do
context 'when the workshop exists' do
it 'returns HTTP Success status code'
it 'assigns the workshop to @workshop'
end
context 'when the workshop does not exist' do
it 'returns HTTP Not Found status code'
end
end
end

View File

@ -1,29 +0,0 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do
factory :lecture do
title { |n| "Lecture #{n}" }
subtitle "Lorem Ipsum"
length 45
language "bg_BG"
abstract "An Abstract"
description "A Description"
notes "Some Notes"
agreement true
track
user
end
factory :workshop do
title { |n| "Workshop #{n}" }
subtitle "Lorem Ipsum"
length 60
language "bg_BG"
abstract "An Abstract"
description "A Description"
notes "Some Notes"
agreement true
track
user
end
end

View File

@ -1,16 +0,0 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do
factory :speaker_profile do
first_name "John"
last_name "Doe"
organisation "Example Org"
public_email "a@b.com"
picture { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec', 'support', 'picture.jpg')) }
mobile_phone "0883444555"
biography "Lorem ipsum"
github "octocat"
twitter "handle"
user
end
end

View File

@ -1,23 +0,0 @@
require 'rails_helper'
RSpec.describe Lecture, :type => :model do
let(:event) { build :lecture }
it_behaves_like 'an event'
describe 'length' do
it 'must be between 40 and 45 minutes' do
event.length = 30
expect(event).to have_error_on :length
event.length = 60
expect(event).to have_error_on :length
event.length = 40
expect(event).to_not have_error_on :length
event.length = 45
expect(event).to_not have_error_on :length
end
end
end

View File

@ -1,96 +0,0 @@
require 'rails_helper'
RSpec.describe SpeakerProfile, :type => :model do
it 'is invalid without a first name' do
expect(build(:speaker_profile, first_name: nil)).to have_error_on :first_name
end
it 'is invalid without a last name' do
expect(build(:speaker_profile, last_name: nil)).to have_error_on :last_name
end
it 'is invalid without a picture' do
expect(build(:speaker_profile, picture: nil)).to have_error_on :picture
end
describe 'mobile_phone' do
it 'must be present' do
expect(build(:speaker_profile, mobile_phone: nil)).to have_error_on :mobile_phone
end
it 'must be a valid phone number' do
expect(build(:speaker_profile, mobile_phone: 'abc')).to have_error_on :mobile_phone
end
it 'is stored in a normalized form' do
speaker_profile = create :speaker_profile, mobile_phone: '0883444555'
expect(speaker_profile.mobile_phone).to eq '359883444555'
speaker_profile.mobile_phone = '+1883444555'
speaker_profile.save
expect(speaker_profile.mobile_phone).to eq '1883444555'
end
end
describe 'public email' do
it 'can be absent' do
expect(build(:speaker_profile, public_email: '')).to_not have_error_on :public_email
end
it 'can contain exatly one @ when present' do
expect(build(:speaker_profile, public_email: 'test@@example.com')).to have_error_on :public_email
expect(build(:speaker_profile, public_email: 'test@example.com')).to_not have_error_on :public_email
expect(build(:speaker_profile, public_email: 'testexample.com')).to have_error_on :public_email
end
end
describe 'twitter handle' do
it 'can be absent' do
expect(build(:speaker_profile, twitter: '')).to_not have_error_on :twitter
end
context 'when present' do
it 'is stored without a starting @' do
expect(create(:speaker_profile, twitter: '@foobar').twitter).to eq 'foobar'
end
it 'must contain only alphanumeric symbols or an underscore' do
speaker_profile = build :speaker_profile
speaker_profile.twitter = 'fooBar_1'
expect(speaker_profile).to_not have_error_on :twitter
speaker_profile.twitter = 'foobar!'
expect(speaker_profile).to have_error_on :twitter
end
it 'must be maximum 15 symbols long' do
expect(build(:speaker_profile, twitter: 'a'*16)).to have_error_on :twitter
end
end
end
describe 'github account' do
it 'can be absent' do
expect(build(:speaker_profile, github: '')).to_not have_error_on :twitter
end
context 'when present' do
it 'must contain only alphanumeric symbols or a dash' do
speaker_profile = build :speaker_profile
speaker_profile.github = 'fooBar-1'
expect(speaker_profile).to_not have_error_on :github
speaker_profile.github = 'foobar!'
expect(speaker_profile).to have_error_on :github
end
it 'must not start with a dash' do
expect(build(:speaker_profile, github: '-foobar')).to have_error_on :github
end
end
end
it 'is invalid without a bio' do
expect(build(:speaker_profile, biography: nil)).to have_error_on :biography
end
end

View File

@ -1,23 +0,0 @@
require 'rails_helper'
RSpec.describe Workshop, :type => :model do
let(:event) { build :workshop }
it_behaves_like 'an event'
describe 'length' do
it 'must be between 30 and 120 minutes' do
event.length = 20
expect(event).to have_error_on :length
event.length = 240
expect(event).to have_error_on :length
event.length = 30
expect(event).to_not have_error_on :length
event.length = 120
expect(event).to_not have_error_on :length
end
end
end

View File

View File

@ -1,38 +0,0 @@
RSpec.shared_examples 'an event' do
it 'is invalid if the event agrement is not accepted' do
event.agreement = false
expect(event).to have_error_on :agreement
end
it 'is invalid without a title' do
event.title = ''
expect(event).to have_error_on :title
end
describe 'length' do
it 'must be present' do
event.length = ''
expect(event).to have_error_on :length
end
it 'must be a number' do
event.length = 'foo'
expect(event).to have_error_on :length
end
it 'must be larger than zero' do
event.length = '-10'
expect(event).to have_error_on :length
end
end
it 'is invalid without an abstract' do
event.abstract = ''
expect(event).to have_error_on :abstract
end
it 'is invalid without a description' do
event.description = ''
expect(event).to have_error_on :description
end
end