Class: Transmission::Torrent
- Inherits:
-
Object
- Object
- Transmission::Torrent
- Defined in:
- lib/transmission-client/torrent.rb
Constant Summary collapse
- ATTRIBUTES =
['activityDate', 'addedDate', 'bandwidthPriority', 'comment', 'corruptEver', 'creator', 'dateCreated', 'desiredAvailable', 'doneDate', 'downloadDir', 'downloadedEver', 'downloadLimit', 'downloadLimited', 'error', 'errorString', 'eta', 'hashString', 'haveUnchecked', 'haveValid', 'honorsSessionLimits', 'id', 'isPrivate', 'leftUntilDone', 'manualAnnounceTime', 'maxConnectedPeers', 'name', 'peer-limit', 'peersConnected', 'peersGettingFromUs', 'peersKnown', 'peersSendingToUs', 'percentDone', 'pieces', 'pieceCount', 'pieceSize', 'rateDownload', 'rateUpload', 'recheckProgress', 'seedRatioLimit', 'seedRatioMode', 'sizeWhenDone', 'startDate', 'status', 'swarmSpeed', 'totalSize', 'torrentFile', 'uploadedEver', 'uploadLimit', 'uploadLimited', 'uploadRatio', 'webseedsSendingToUs']
- ADV_ATTRIBUTES =
['files', 'fileStats', 'peers', 'peersFrom', 'priorities', 'trackers', 'trackerStats', 'wanted', 'webseeds']
- SETABLE_ATTRIBUTES =
['bandwidthPriority', 'downloadLimit', 'downloadLimited', 'files-wanted', 'files-unwanted', 'honorsSessionLimits', 'ids', 'location', 'peer-limit', 'priority-high', 'priority-low', 'priority-normal', 'seedRatioLimit', 'seedRatioMode', 'uploadLimit', 'uploadLimited']
Instance Method Summary collapse
-
#initialize(attributes) ⇒ Torrent
constructor
A new instance of Torrent.
- #method_missing(m, *args, &block) ⇒ Object
- #move(location, move = true) ⇒ Object
- #reannounce ⇒ Object
- #remove(delete_data = false) ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #verify ⇒ Object
Constructor Details
#initialize(attributes) ⇒ Torrent
Returns a new instance of Torrent.
7 8 9 |
# File 'lib/transmission-client/torrent.rb', line 7 def initialize(attributes) @attributes = attributes end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/transmission-client/torrent.rb', line 35 def method_missing(m, *args, &block) if ATTRIBUTES.include? m.to_s return @attributes[m.to_s] elsif ADV_ATTRIBUTES.include? m.to_s raise "Attribute not yet supported." elsif m[-1..-1] == '=' if SETABLE_ATTRIBUTES.include? m[0..-2] Connection.instance.send('torrent-set', {'ids' => [@attributes['id']], m[0..-2] => args.first}) else raise "Invalid Attribute." end else raise "Invalid Attribute." end end |
Instance Method Details
#move(location, move = true) ⇒ Object
31 32 33 |
# File 'lib/transmission-client/torrent.rb', line 31 def move(location, move = true) Connection.instance.send('torrent-set-location', {'ids' => @attributes['id'], 'location' => location, 'move' => move}) end |
#reannounce ⇒ Object
23 24 25 |
# File 'lib/transmission-client/torrent.rb', line 23 def reannounce Connection.instance.send('torrent-reannounce', {'ids' => @attributes['id']}) end |
#remove(delete_data = false) ⇒ Object
27 28 29 |
# File 'lib/transmission-client/torrent.rb', line 27 def remove(delete_data = false) Connection.instance.send('torrent-remove', {'ids' => @attributes['id'], 'delete-local-data' => delete_data }) end |
#start ⇒ Object
11 12 13 |
# File 'lib/transmission-client/torrent.rb', line 11 def start Connection.instance.send('torrent-start', {'ids' => @attributes['id']}) end |
#stop ⇒ Object
15 16 17 |
# File 'lib/transmission-client/torrent.rb', line 15 def stop Connection.instance.send('torrent-stop', {'ids' => @attributes['id']}) end |
#verify ⇒ Object
19 20 21 |
# File 'lib/transmission-client/torrent.rb', line 19 def verify Connection.instance.send('torrent-verify', {'ids' => @attributes['id']}) end |