Sha256: ce8749278dc73fd5ba81ec2499ab03df074ecc880b45d780cc053aea15046449
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
require 'json' require 'base64' module DeviceCloud class PushNotification::Message::FileData attr_accessor :id, :fdLastModifiedDate, :fdSize, :fdContentType, :fdData, :fdArchive, :cstId, :fdType, :fdCreatedDate attr_reader :errors def initialize(attributes = {}) @errors = [] attributes.each do |name, value| send("#{name}=", value) end DeviceCloud.logger.warn "DeviceCloud::PushNotification::Message::FileData Invalid (#{errors.join(',')}) - #{full_path}" unless valid? end def full_path file_path + file_name end def content_type fdContentType end def data return false unless valid? @data ||= if json_data? JSON.parse unencoded_data else unencoded_data end end def file_name return '' unless id id['fdName'] end def file_path return '' unless id id['fdPath'] end def valid? return false if @errors.any? validate_content! end private def json_data? fdContentType =~ /json/ || file_name =~ /\.json\z/ end def unencoded_data @unencoded_data ||= Base64.decode64(fdData) end def validate_content! if !fdData || fdData.size == 0 || fdSize.to_i < 1 @errors << 'no content' false else true end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
device_cloud-0.1.0 | lib/device_cloud/push_notification/message/file_data.rb |
device_cloud-0.0.11 | lib/device_cloud/push_notification/message/file_data.rb |