Class: Twterm::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/twterm/status.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tweet, is_retweeted_status = false) ⇒ Status

Returns a new instance of Status.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/twterm/status.rb', line 38

def initialize(tweet, is_retweeted_status = false)
  unless tweet.retweeted_status.is_a? Twitter::NullObject
    @retweeted_status_id = tweet.retweeted_status.id
  end

  @id = tweet.id
  @text = CGI.unescapeHTML(tweet.full_text.dup)
  @created_at = tweet.created_at.dup.localtime
  @in_reply_to_status_id = tweet.in_reply_to_status_id
  @quoted_status_id = tweet.quoted_status_id
  @url = tweet.url

  update!(tweet, is_retweeted_status)

  @media = tweet.media
  @urls = tweet.urls

  @user_id = tweet.user.id

  @splitted_text = {}

  expand_url!
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



14
15
16
# File 'lib/twterm/status.rb', line 14

def created_at
  @created_at
end

#favorite_countObject (readonly)

Returns the value of attribute favorite_count.



14
15
16
# File 'lib/twterm/status.rb', line 14

def favorite_count
  @favorite_count
end

#favoritedObject (readonly) Also known as: favorited?

Returns the value of attribute favorited.



14
15
16
# File 'lib/twterm/status.rb', line 14

def favorited
  @favorited
end

#idObject (readonly)

Returns the value of attribute id.



14
15
16
# File 'lib/twterm/status.rb', line 14

def id
  @id
end

#in_reply_to_status_idObject (readonly)

Returns the value of attribute in_reply_to_status_id.



14
15
16
# File 'lib/twterm/status.rb', line 14

def in_reply_to_status_id
  @in_reply_to_status_id
end

#mediaObject (readonly)

Returns the value of attribute media.



14
15
16
# File 'lib/twterm/status.rb', line 14

def media
  @media
end

#quoted_status_idObject (readonly)

Returns the value of attribute quoted_status_id.



14
15
16
# File 'lib/twterm/status.rb', line 14

def quoted_status_id
  @quoted_status_id
end

#retweet_countObject (readonly)

Returns the value of attribute retweet_count.



14
15
16
# File 'lib/twterm/status.rb', line 14

def retweet_count
  @retweet_count
end

#retweetedObject (readonly) Also known as: retweeted?

Returns the value of attribute retweeted.



14
15
16
# File 'lib/twterm/status.rb', line 14

def retweeted
  @retweeted
end

#retweeted_status_idObject (readonly)

Returns the value of attribute retweeted_status_id.



14
15
16
# File 'lib/twterm/status.rb', line 14

def retweeted_status_id
  @retweeted_status_id
end

#textObject (readonly)

Returns the value of attribute text.



14
15
16
# File 'lib/twterm/status.rb', line 14

def text
  @text
end

#urlObject (readonly)

Returns the value of attribute url.



14
15
16
# File 'lib/twterm/status.rb', line 14

def url
  @url
end

#urlsObject (readonly)

Returns the value of attribute urls.



14
15
16
# File 'lib/twterm/status.rb', line 14

def urls
  @urls
end

#user_idObject (readonly)

Returns the value of attribute user_id.



14
15
16
# File 'lib/twterm/status.rb', line 14

def user_id
  @user_id
end

Instance Method Details

#==(other) ⇒ Object



20
21
22
# File 'lib/twterm/status.rb', line 20

def ==(other)
  other.is_a?(self.class) && id == other.id
end

#dateObject



24
25
26
27
# File 'lib/twterm/status.rb', line 24

def date
  format = Time.now - @created_at < 86_400 ? '%H:%M:%S' : '%Y-%m-%d %H:%M:%S'
  @created_at.strftime(format)
end

#expand_url!Object



29
30
31
32
# File 'lib/twterm/status.rb', line 29

def expand_url!
  sub = -> (x) { @text.sub!(x.url, x.display_url) }
  (@media + @urls).each(&sub)
end

#favorite!Object



34
35
36
# File 'lib/twterm/status.rb', line 34

def favorite!
  @favorited = true
end

#quote?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/twterm/status.rb', line 62

def quote?
  !quoted_status_id.nil?
end

#retweet!Object



70
71
72
# File 'lib/twterm/status.rb', line 70

def retweet!
  @retweeted = true
end

#retweet?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/twterm/status.rb', line 66

def retweet?
  !retweeted_status_id.nil?
end

#split(width) ⇒ Object



74
75
76
# File 'lib/twterm/status.rb', line 74

def split(width)
  @splitted_text[width] ||= @text.split_by_width(width)
end

#unfavorite!Object



78
79
80
# File 'lib/twterm/status.rb', line 78

def unfavorite!
  @favorited = false
end

#unretweet!Object



82
83
84
# File 'lib/twterm/status.rb', line 82

def unretweet!
  @retweeted = false
end

#update!(tweet, is_retweeted_status = false) ⇒ Object



86
87
88
89
90
91
92
93
# File 'lib/twterm/status.rb', line 86

def update!(tweet, is_retweeted_status = false)
  @retweet_count = tweet.retweet_count
  @favorite_count = tweet.favorite_count
  @retweeted = tweet.retweeted? unless is_retweeted_status
  @favorited = tweet.favorited?

  self
end