Class: ActiveStorage::Attached::Changes::CreateOne
- Inherits:
- 
      Object
      
        - Object
- ActiveStorage::Attached::Changes::CreateOne
 
- Defined in:
- lib/active_storage/attached/changes/create_one.rb
Overview
:nodoc:
Direct Known Subclasses
Instance Attribute Summary collapse
- 
  
    
      #attachable  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute attachable. 
- 
  
    
      #name  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute name. 
- 
  
    
      #record  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute record. 
Instance Method Summary collapse
- #attachment ⇒ Object
- #blob ⇒ Object
- 
  
    
      #initialize(name, record, attachable)  ⇒ CreateOne 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of CreateOne. 
- #save ⇒ Object
- #upload ⇒ Object
Constructor Details
#initialize(name, record, attachable) ⇒ CreateOne
Returns a new instance of CreateOne.
| 10 11 12 13 | # File 'lib/active_storage/attached/changes/create_one.rb', line 10 def initialize(name, record, attachable) @name, @record, @attachable = name, record, attachable blob.identify_without_saving end | 
Instance Attribute Details
#attachable ⇒ Object (readonly)
Returns the value of attribute attachable.
| 8 9 10 | # File 'lib/active_storage/attached/changes/create_one.rb', line 8 def attachable @attachable end | 
#name ⇒ Object (readonly)
Returns the value of attribute name.
| 8 9 10 | # File 'lib/active_storage/attached/changes/create_one.rb', line 8 def name @name end | 
#record ⇒ Object (readonly)
Returns the value of attribute record.
| 8 9 10 | # File 'lib/active_storage/attached/changes/create_one.rb', line 8 def record @record end | 
Instance Method Details
#attachment ⇒ Object
| 15 16 17 | # File 'lib/active_storage/attached/changes/create_one.rb', line 15 def @attachment ||= end | 
#blob ⇒ Object
| 19 20 21 | # File 'lib/active_storage/attached/changes/create_one.rb', line 19 def blob @blob ||= find_or_build_blob end | 
#save ⇒ Object
| 48 49 50 51 | # File 'lib/active_storage/attached/changes/create_one.rb', line 48 def save record.public_send("#{name}_attachment=", ) record.public_send("#{name}_blob=", blob) end | 
#upload ⇒ Object
| 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # File 'lib/active_storage/attached/changes/create_one.rb', line 23 def upload case attachable when ActionDispatch::Http::UploadedFile blob.upload_without_unfurling(attachable.open) when Rack::Test::UploadedFile blob.upload_without_unfurling( attachable.respond_to?(:open) ? attachable.open : attachable ) when Hash blob.upload_without_unfurling(attachable.fetch(:io)) when File blob.upload_without_unfurling(attachable) when Pathname blob.upload_without_unfurling(attachable.open) when ActiveStorage::Blob when String else raise( ArgumentError, "Could not upload: expected attachable, " \ "got #{attachable.inspect}" ) end end |