# Copyright (C) 2017 Kouhei Sutou # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA module ChupaText class Screenshot # @return [String] The MIME type of the screenshot. attr_reader :mime_type # @return [String] The data of the screenshot. attr_reader :data # @return [String, nil] The encoding of the screenshot data. # `nil` means that the data is raw data. It's used for SVG data # because it's text data. `"base64"` means that the data is encoded # by Base64. It's used for PNG data because it's binary data. attr_reader :encoding def initialize(mime_type, data, encoding=nil) @mime_type = mime_type @data = data @encoding = encoding end def decoded_data case @encoding when "base64" @data.unpack("m*")[0] else @data end end end end