class LastTweet::Tweet

Attributes

account[RW]
message[RW]
timestamp[RW]

Public Class Methods

all() click to toggle source
# File lib/last_tweet/tweet.rb, line 5
def self.all
  @@all
end
create_from_handle(t_handle) click to toggle source
# File lib/last_tweet/tweet.rb, line 9
def self.create_from_handle(t_handle)
  url = "https://twitter.com/" + t_handle[1..-1]
  message_qry    = ["div.tweet div.content div.js-tweet-text-container p.tweet-text", "text", "method"]
  timestamp_qry  = ["div.tweet div.content div.stream-item-header small.time a.tweet-timestamp", "title", "hash_key"]
  what_to_scrape = {message: message_qry, timestamp: timestamp_qry}
  twitter_hash   = LastTweet::Scraper.scrape(url, what_to_scrape)

  unless all.any?{|twt| twt.message == twitter_hash[:message] && twt.timestamp == twitter_hash[:timestamp]}
    tweet = new
    tweet.message   = twitter_hash[:message]
    tweet.timestamp = twitter_hash[:timestamp]
    tweet.add_account(t_handle)
    @@all << tweet
  end

  all.detect{|twt| twt.message == twitter_hash[:message] && twt.timestamp == twitter_hash[:timestamp]}
end

Public Instance Methods

add_account(t_handle) click to toggle source
# File lib/last_tweet/tweet.rb, line 27
def add_account(t_handle)
  t_account = LastTweet::TwitterAccount.all.detect{|acct| acct.handle == t_handle}
  t_account ? self.account = t_account : self.account = LastTweet::TwitterAccount.create_from_handle(t_handle)
  self.account.tweets << self unless self.account.tweets.include? self
end
remove() click to toggle source
# File lib/last_tweet/tweet.rb, line 33
def remove
  self.account.remove
  @@all.delete(self)
end