Commit 7e0f4e07
Changed files (19)
app
assets
javascripts
stylesheets
controllers
helpers
models
views
creations
favorites
config
spec
controllers
helpers
models
requests
app/assets/javascripts/likes.js.coffee → app/assets/javascripts/favorites.js.coffee
File renamed without changes
app/assets/stylesheets/likes.css.scss → app/assets/stylesheets/favorites.css.scss
File renamed without changes
app/controllers/likes_controller.rb → app/controllers/favorites_controller.rb
@@ -1,20 +1,20 @@
-class LikesController < ApplicationController
+class FavoritesController < ApplicationController
before_filter :authenticate_user!
before_filter :find_creation
- # GET /likes
+ # GET /favorites
def index
- @likes = @creation.likes
+ @favorites = @creation.favorites
end
- # POST /likes
+ # POST /favorites
def create
if( current_user == @creation.user )
- redirect_to @creation, :notice => "You can't like your own stuff"
+ redirect_to @creation, :notice => "You can't favorite your own stuff"
return
end
- @like = current_user.like(@creation)
- if @like.save
+ @favorite = current_user.add_favorite(@creation)
+ if @favorite.save
redirect_to @creation, :notice => 'Welcome to the fanclub!'
else
redirect_to @creation
app/helpers/favorites_helper.rb
@@ -0,0 +1,2 @@
+module FavoritesHelper
+end
app/helpers/likes_helper.rb
@@ -1,2 +0,0 @@
-module LikesHelper
-end
app/models/creation.rb
@@ -5,7 +5,7 @@ class Creation < ActiveRecord::Base
belongs_to :user
has_and_belongs_to_many :categories, :join_table => 'creations_categories', :uniq => true, :autosave => true
has_many :photos, :dependent => :destroy
- has_many :likes, :dependent => :destroy
+ has_many :favorites, :dependent => :destroy
mount_uploader :image, ImageUploader
attr_accessor :crop_x, :crop_y, :crop_h, :crop_w
app/models/like.rb → app/models/favorite.rb
@@ -1,4 +1,4 @@
-class Like < ActiveRecord::Base
+class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :creation
end
app/models/user.rb
@@ -4,22 +4,19 @@ class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
attr_accessible :name, :email, :password, :password_confirmation, :remember_me
has_many :creations, :dependent => :destroy
- has_many :likes, :dependent => :destroy
+ has_many :favorites, :dependent => :destroy
- def like( creation )
+ def add_favorite( creation )
if self.already_likes(creation)
logger.info 'already likes creation'
- likes.find { |like| like.user == self }
+ favorites.find { |favorite| favorite.user == self }
else
logger.info 'add creation'
- creation.likes.create({:user => self})
+ creation.favorites.create({:user => self})
end
end
def already_likes(creation)
- Like.where("user_id = ? AND creation_id = ?", self.id, creation.id).exists?
- # likes.any? do |like|
- # like.user == self && like.creation == creation
- # end
+ Favorite.where("user_id = ? AND creation_id = ?", self.id, creation.id).exists?
end
end
app/views/creations/show.html.erb
@@ -31,14 +31,14 @@
<div class="span10">
<p>
submitted on: <%= @creation.created_at.to_s :foomat %> |
- <%= link_to 'fanclub (' + pluralize(@creation.likes.length, 'fan') + ')', creation_likes_path(:creation_id => @creation.id)%>
+ <%= link_to 'fanclub (' + pluralize(@creation.favorites.length, 'fan') + ')', creation_favorites_path(:creation_id => @creation.id)%>
</p>
</div>
<div class="span2">
<iframe src="http://www.facebook.com/plugins/like.php?href=<%= request.url %>" scrolling="no" frameborder="0" style="border:none; width:350px; height:30px"></iframe>
<% if user_signed_in? %>
<% unless current_user == @creation.user || current_user.already_likes(@creation) %>
- <%= button_to "Favorite", creation_likes_path(:creation_id => @creation.id), :method => :post, :class => 'btn success' %>
+ <%= button_to "Favorite", creation_favorites_path(:creation_id => @creation.id), :method => :post, :class => 'btn success' %>
<% end %>
<% end %>
</div>
app/views/likes/index.html.erb → app/views/favorites/index.html.erb
@@ -11,8 +11,8 @@
<div class="row">
<div class="span16">
<ul class="media-grid">
- <% @creation.likes.each do |like| %>
- <a href="<%= url_for profile_path(like.user) %>"><img src="<%= avatar_url like.user %>&s=200" alt="<%= like.user.name %>" /></a>
+ <% @creation.favorites.each do |favorite| %>
+ <a href="<%= url_for profile_path(favorite.user) %>"><img src="<%= avatar_url favorite.user %>&s=200" alt="<%= favorite.user.name %>" /></a>
<% end %>
</ul>
</div>
config/routes.rb
@@ -8,7 +8,7 @@ Cake::Application.routes.draw do
# /creations
resources :creations do
resources :photos, :only => [:create, :destroy]
- resources :likes, :onlye => [:index, :create]
+ resources :favorites, :onlye => [:index, :create]
end
match 'creations/crop/:id' => 'creations#crop', :method => 'GET'
match 'creations/crop_update/:id' => 'creations#crop_update', :as => 'creations_crop_update', :method => 'POST'
db/migrate/20120130032306_rename_likes_to_favorites.rb
@@ -1,5 +1,5 @@
class RenameLikesToFavorites < ActiveRecord::Migration
def change
- rename_table :like, :favorite
+ rename_table :likes, :favorites
end
end
db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120106021715) do
+ActiveRecord::Schema.define(:version => 20120130032306) do
create_table "categories", :force => true do |t|
t.string "name"
@@ -34,7 +34,7 @@ ActiveRecord::Schema.define(:version => 20120106021715) do
t.integer "category_id"
end
- create_table "likes", :force => true do |t|
+ create_table "favorites", :force => true do |t|
t.integer "user_id"
t.integer "creation_id"
t.datetime "created_at"
spec/controllers/likes_controller_spec.rb → spec/controllers/favorites_controller_spec.rb
@@ -18,7 +18,7 @@ require 'spec_helper'
# Message expectations are only used when there is no simpler way to specify
# that an instance is receiving a specific message.
-describe LikesController do
+describe FavoritesController do
# This should return the minimal set of attributes required to create a valid
# Like. As you add validations to Like, be sure to
@@ -28,30 +28,30 @@ describe LikesController do
end
describe "GET index" do
- it "assigns all likes as @likes" do
- like = Like.create! valid_attributes
+ it "assigns all favorites as @favorites" do
+ favorite = Favorite.create! valid_attributes
get :index, :creation_id => "1"
- assigns(:likes).should eq([like])
+ assigns(:favorites).should eq([favorite])
end
end
describe "POST create" do
describe "with valid params" do
- it "creates a new Like" do
+ it "creates a new Favorite" do
expect {
- post :create, :like => valid_attributes
- }.to change(Like, :count).by(1)
+ post :create, :favorite => valid_attributes
+ }.to change(Favorite, :count).by(1)
end
- it "assigns a newly created like as @like" do
- post :create, :like => valid_attributes
- assigns(:like).should be_a(Like)
- assigns(:like).should be_persisted
+ it "assigns a newly created favorite as @favorite" do
+ post :create, :favorite => valid_attributes
+ assigns(:favorite).should be_a(favorite)
+ assigns(:favorite).should be_persisted
end
- it "redirects to the created like" do
- post :create, :like => valid_attributes
- response.should redirect_to(Like.last)
+ it "redirects to the created favorite" do
+ post :create, :favorite => valid_attributes
+ response.should redirect_to(Favorite.last)
end
end
end
spec/helpers/likes_helper_spec.rb → spec/helpers/favorites_helper_spec.rb
@@ -1,15 +1,15 @@
require 'spec_helper'
# Specs in this file have access to a helper object that includes
-# the LikesHelper. For example:
+# the FavoritesHelper. For example:
#
-# describe LikesHelper do
+# describe FavoritesHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# helper.concat_strings("this","that").should == "this that"
# end
# end
# end
-describe LikesHelper do
+describe FavoritesHelper do
pending "add some examples to (or delete) #{__FILE__}"
end
spec/models/user_spec.rb
@@ -6,9 +6,9 @@ describe User do
# creation = Creation.new
creation = FactoryGirl.build(:creation)
user = FactoryGirl.create(:user)
- user.like(creation)
- user.like(creation)
- creation.likes.length.should eq(1)
+ user.add_favorite(creation)
+ user.add_favorite(creation)
+ creation.favorites.length.should eq(1)
end
end
end
spec/requests/likes_spec.rb → spec/requests/favorites_spec.rb
@@ -1,10 +1,10 @@
require 'spec_helper'
-describe "Likes" do
- describe "GET /likes" do
+describe "Favorites" do
+ describe "GET /favorites" do
it "works! (now write some real specs)" do
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
- get creation_likes_path
+ get creation_favorites_path
response.status.should be(200)
end
end
spec/routing/favorites_routing_spec.rb
@@ -0,0 +1,14 @@
+require "spec_helper"
+
+describe FavoritesController do
+ describe "routing" do
+
+ it "routes to #index" do
+ get("/creations/1/favorites").should route_to("favorites#index")
+ end
+
+ it "routes to #create" do
+ post("/creations/1/favorites").should route_to("favorites#create")
+ end
+ end
+end
spec/routing/likes_routing_spec.rb
@@ -1,14 +0,0 @@
-require "spec_helper"
-
-describe LikesController do
- describe "routing" do
-
- it "routes to #index" do
- get("/creations/1/likes").should route_to("likes#index")
- end
-
- it "routes to #create" do
- post("/creations/1/likes").should route_to("likes#create")
- end
- end
-end