Class: Ask::Content::File

Inherits:
Object
  • Object
show all
Includes:
Block
Defined in:
lib/ask/content.rb

Overview

An inline file block within a multi-modal message.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Block

#inspect

Constructor Details

#initialize(data:, mime_type: nil, filename: nil) ⇒ File

Returns a new instance of File.

Parameters:

  • data (String)

    the file content

  • mime_type (String, nil) (defaults to: nil)

    MIME type

  • filename (String, nil) (defaults to: nil)

    original filename



178
179
180
181
182
183
# File 'lib/ask/content.rb', line 178

def initialize(data:, mime_type: nil, filename: nil)
  @data = data
  @mime_type = mime_type
  @filename = filename
  freeze
end

Instance Attribute Details

#dataString (readonly)

Returns the file content.

Returns:

  • (String)

    the file content



167
168
169
# File 'lib/ask/content.rb', line 167

def data
  @data
end

#filenameString? (readonly)

Returns original filename.

Returns:

  • (String, nil)

    original filename



173
174
175
# File 'lib/ask/content.rb', line 173

def filename
  @filename
end

#mime_typeString? (readonly)

Returns MIME type.

Returns:

  • (String, nil)

    MIME type



170
171
172
# File 'lib/ask/content.rb', line 170

def mime_type
  @mime_type
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



185
186
187
188
# File 'lib/ask/content.rb', line 185

def ==(other)
  other.is_a?(File) && @data == other.data &&
    @mime_type == other.mime_type && @filename == other.filename
end

#hashObject



191
192
193
# File 'lib/ask/content.rb', line 191

def hash
  [@data, @mime_type, @filename].hash
end

#to_hObject



195
196
197
# File 'lib/ask/content.rb', line 195

def to_h
  { type: "file", data: @data, mime_type: @mime_type, filename: @filename }
end