Skip to content

Instantly share code, notes, and snippets.

@inre
Forked from justinko/Plea.markdown
Created July 11, 2012 10:33
Show Gist options
  • Save inre/3089538 to your computer and use it in GitHub Desktop.
Save inre/3089538 to your computer and use it in GitHub Desktop.
Am I doing it wrong?
# Controllers
class PostController
before_filter :set_entry
def create
@entry.comments.create!(params.merge(author: @current_user))
end
protected
def set_entry
@entry = current_user.entries.find(params[:id])
end
end
class ApplicationController
rescue_from ThisIsSpam, :with => :reject_spam
protected
def reject_spam
head :bad_request
end
end
# Models
class Entry
has_many :comments
end
class Comment
before_create :spam_check
after_create :to_twitter
after_create :to_facebook
def spam_check
raise ThisIsSpam if spam?
end
def spam?
SpamChecker.spam?(self.body)
end
def to_twitter
self.entry.user.to_twitter(self);
end
def to_facebook
self.entry.user.to_facebook(self);
end
def to_s
self.body
end
end
class User
def to_twitter(object)
Twitter.post(self, object.to_s) if object.share.twitter?
end
def to_facebook(object)
Facebook.comment(self, object.to_s) if object.share.facebook?
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment