Class: Reddit::Submission

Inherits:
Thing show all
Includes:
JsonListing
Defined in:
lib/ruby_reddit_api/submission.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#debug, #last_action

Instance Method Summary collapse

Methods included from JsonListing

included

Methods inherited from Thing

#author, #downvote, #id, #initialize, #report, #toggle, #upvote

Methods inherited from Base

base_headers, #base_headers, #cookie, #initialize, #logged_in?, #login, #logout, #modhash, #read, #user, #user_agent, user_agent, #user_id

Constructor Details

This class inherits a constructor from Reddit::Thing

Instance Attribute Details

#clickedObject (readonly)

Returns the value of attribute clicked.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def clicked
  @clicked
end

#createdObject (readonly)

Returns the value of attribute created.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def created
  @created
end

#created_utcObject (readonly)

Returns the value of attribute created_utc.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def created_utc
  @created_utc
end

#domainObject (readonly)

Returns the value of attribute domain.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def domain
  @domain
end

#downsObject (readonly)

Returns the value of attribute downs.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def downs
  @downs
end

#hiddenObject (readonly)

Returns the value of attribute hidden.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def hidden
  @hidden
end

#is_selfObject (readonly)

Returns the value of attribute is_self.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def is_self
  @is_self
end

#kindObject (readonly)

Returns the value of attribute kind.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def kind
  @kind
end

#last_comment_idObject (readonly)

Returns the value of attribute last_comment_id.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def last_comment_id
  @last_comment_id
end

#likesObject (readonly)

Returns the value of attribute likes.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def likes
  @likes
end

#mediaObject (readonly)

Returns the value of attribute media.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def media
  @media
end

#media_embedObject (readonly)

Returns the value of attribute media_embed.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def media_embed
  @media_embed
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def name
  @name
end

#num_commentsObject (readonly)

Returns the value of attribute num_comments.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def num_comments
  @num_comments
end

#over_18Object (readonly)

Returns the value of attribute over_18.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def over_18
  @over_18
end

Returns the value of attribute permalink.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def permalink
  @permalink
end

#savedObject (readonly)

Returns the value of attribute saved.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def saved
  @saved
end

#scoreObject (readonly)

Returns the value of attribute score.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def score
  @score
end

#selftextObject (readonly)

Returns the value of attribute selftext.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def selftext
  @selftext
end

#selftext_htmlObject (readonly)

Returns the value of attribute selftext_html.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def selftext_html
  @selftext_html
end

#subredditObject (readonly)

Returns the value of attribute subreddit.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def subreddit
  @subreddit
end

#subreddit_idObject (readonly)

Returns the value of attribute subreddit_id.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def subreddit_id
  @subreddit_id
end

#thumbnailObject (readonly)

Returns the value of attribute thumbnail.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def thumbnail
  @thumbnail
end

#titleObject (readonly)

Returns the value of attribute title.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def title
  @title
end

#upsObject (readonly)

Returns the value of attribute ups.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def ups
  @ups
end

#urlObject (readonly)

Returns the value of attribute url.



5
6
7
# File 'lib/ruby_reddit_api/submission.rb', line 5

def url
  @url
end

Instance Method Details

#add_comment(text) ⇒ true, false

Add a comment to a submission

Parameters:

  • Comment (String)

    text

Returns:

  • (true, false)


14
15
16
17
# File 'lib/ruby_reddit_api/submission.rb', line 14

def add_comment(text)
  resp = self.class.post("/api/comment", {:body => {:thing_id => id, :text => text, :uh => modhash, :r => subreddit }, :headers => base_headers, :debug_output => @debug })
  resp.code == 200
end

#admin_distinguishObject



47
48
49
# File 'lib/ruby_reddit_api/submission.rb', line 47

def admin_distinguish
  add_distinction "admin"
end

#commentsArray<Reddit::Comment>

TODO:

Move to ‘Thing’ class

Fetch submission comments

Returns:



58
59
60
61
62
63
# File 'lib/ruby_reddit_api/submission.rb', line 58

def comments
  _comments = read( permalink + ".json", {:handler => "Comment", :query => {:limit => 250}} )
  @last_comment_id = _comments.last.id if _comments && _comments.any?
  _comments.shift # First 'comment' is actually the submission
  return _comments
end

#hidetrue, false

Hide submission

Returns:

  • (true, false)


33
34
35
# File 'lib/ruby_reddit_api/submission.rb', line 33

def hide
  toggle :hide
end

#indistinguishObject



51
52
53
# File 'lib/ruby_reddit_api/submission.rb', line 51

def indistinguish
  add_distinction "no"
end

#inspectObject



7
8
9
# File 'lib/ruby_reddit_api/submission.rb', line 7

def inspect
  "<Reddit::Submission id='#{id}' author='#{@author}' title='#{title}'>"
end

#moderator_distinguishObject



43
44
45
# File 'lib/ruby_reddit_api/submission.rb', line 43

def moderator_distinguish
  add_distinction "yes"
end

#savetrue, false

Save submission

Returns:

  • (true, false)


21
22
23
# File 'lib/ruby_reddit_api/submission.rb', line 21

def save
  toggle :save
end

#unhidetrue, false

Unhide submission

Returns:

  • (true, false)


39
40
41
# File 'lib/ruby_reddit_api/submission.rb', line 39

def unhide
  toggle :unhide
end

#unsavetrue, false

Unsave submission

Returns:

  • (true, false)


27
28
29
# File 'lib/ruby_reddit_api/submission.rb', line 27

def unsave
  toggle :unsave
end