lib/relaton_iec/basic_block/image.rb
module BasicBlock
class Image
#
# @param [String] id
# @param [String] src
# @param [String] mimetype
# @param [Hash] args
# @option args [String] :filename
#
def initialize(id:, src:, mimetype:, **args) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength
@id = id
@src = src
@mimetype = mimetype
@filename = args[:filename]
if args[:width] && !args[:width].is_a?(Integer) && args[:width] != "auto"
Util.warn "Invalid image width attribute: `#{args[:width]}`\nImage width should be integer or `auto`"
end
if args[:height] && !args[:height].is_a?(Integer) && args[:height] != "auto"
Util.warn "Invalid image height attribute: `#{args[:height]}`\n" \
"Image height should be integer or `auto`"
end
@width = args[:width]
@height = args[:height]
@alt = args[:alt]
@title = args[:title]
@longdesc = args[:longdesc]
end
# @param [Nokogiri::XML::Builder]
def to_xml(builder) # rubocop:disable Metrics/CyclomaticComplexity
img = builder.image id: @id, src: @src, mimetype: @mimetype
img[:filename] = @filename if @filename
img[:width] = @width if @width
img[:height] = @height if @height
img[:alt] = @alt if @alt
img[:title] = @title if @title
img[:longdesc] = @longdesc if @longdesc
end
end
end