Class: Clipping

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/clipping.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_recent(options = {:limit => 5}) ⇒ Object



37
38
39
# File 'app/models/clipping.rb', line 37

def self.find_recent(options = {:limit => 5})
  find(:all, :conditions => "created_at > '#{7.days.ago.iso8601}'", :order => "created_at DESC", :limit => options[:limit])
end


25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/clipping.rb', line 25

def self.find_related_to(clipping, options = {})
  options.reverse_merge!({:limit => 8, 
      :order => 'created_at DESC',
      :conditions => [ 'clippings.id != ?', clipping.id ]
  })

  limit(options[:limit]).
    order(options[:order]).
    where(options[:conditions]).
    tagged_with(clipping.tags.collect{|t| t.name }, :any => true)
end

Instance Method Details

#add_imageObject



65
66
67
68
69
70
71
72
73
74
# File 'app/models/clipping.rb', line 65

def add_image
  begin
    clipping_image = ClippingImage.new
    uploaded_data = clipping_image.data_from_url(self.image_url)
    clipping_image.asset = uploaded_data
    self.image = clipping_image
  rescue
    nil
  end
end

#has_been_favorited_by(user = nil, remote_ip = nil) ⇒ Object



60
61
62
63
# File 'app/models/clipping.rb', line 60

def has_been_favorited_by(user = nil, remote_ip = nil)
  f = Favorite.find_by_user_or_ip_address(self, user, remote_ip)
  return f
end

#image_uri(size = '') ⇒ Object



52
53
54
# File 'app/models/clipping.rb', line 52

def image_uri(size = '')
  image && image.asset.url(size) || image_url
end

#next_clippingObject



44
45
46
# File 'app/models/clipping.rb', line 44

def next_clipping
  self.user.clippings.where('created_at > ?', self.created_at).order('created_at ASC').first    
end

#ownerObject



48
49
50
# File 'app/models/clipping.rb', line 48

def owner
  self.user
end

#previous_clippingObject



41
42
43
# File 'app/models/clipping.rb', line 41

def previous_clipping
  self.user.clippings.order('created_at DESC').where('created_at < ?', self.created_at).first
end

#save_imageObject



76
77
78
79
80
81
# File 'app/models/clipping.rb', line 76

def save_image
  if valid? && image
    image.attachable = self
    image.save
  end
end

#title_for_rssObject



56
57
58
# File 'app/models/clipping.rb', line 56

def title_for_rss
  description.empty? ? created_at.to_formatted_s(:long) : description
end