Class: Basecamp::Attachment
- Inherits:
-
Object
- Object
- Basecamp::Attachment
- Defined in:
- lib/basecamp.rb
Instance Attribute Summary collapse
-
#content ⇒ Object
Returns the value of attribute content.
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#id ⇒ Object
Returns the value of attribute id.
Class Method Summary collapse
Instance Method Summary collapse
- #attributes ⇒ Object
-
#initialize(filename, content) ⇒ Attachment
constructor
A new instance of Attachment.
- #inspect ⇒ Object
- #save ⇒ Object
- #to_xml(options = {}) ⇒ Object
Constructor Details
#initialize(filename, content) ⇒ Attachment
Returns a new instance of Attachment.
387 388 389 |
# File 'lib/basecamp.rb', line 387 def initialize(filename, content) @filename, @content = filename, content end |
Instance Attribute Details
#content ⇒ Object
Returns the value of attribute content.
379 380 381 |
# File 'lib/basecamp.rb', line 379 def content @content end |
#filename ⇒ Object
Returns the value of attribute filename.
379 380 381 |
# File 'lib/basecamp.rb', line 379 def filename @filename end |
#id ⇒ Object
Returns the value of attribute id.
379 380 381 |
# File 'lib/basecamp.rb', line 379 def id @id end |
Class Method Details
.create(filename, content) ⇒ Object
381 382 383 384 385 |
# File 'lib/basecamp.rb', line 381 def self.create(filename, content) returning new(filename, content) do || .save end end |
Instance Method Details
#attributes ⇒ Object
391 392 393 |
# File 'lib/basecamp.rb', line 391 def attributes { :file => id, :original_filename => filename } end |
#inspect ⇒ Object
399 400 401 |
# File 'lib/basecamp.rb', line 399 def inspect to_s end |
#save ⇒ Object
403 404 405 406 407 408 409 410 411 412 |
# File 'lib/basecamp.rb', line 403 def save response = Basecamp.connection.post('/upload', content, 'Content-Type' => 'application/octet-stream') if response.code == '200' self.id = Hash.from_xml(response.body)['upload']['id'] true else raise "Could not save attachment: #{response.message} (#{response.code})" end end |
#to_xml(options = {}) ⇒ Object
395 396 397 |
# File 'lib/basecamp.rb', line 395 def to_xml( = {}) { :file => attributes }.to_xml() end |