class AnimationData
noinspection RubyTooManyInstanceVariablesInspection
Attributes
animation[RW]
center[RW]
colors[RW]
continuous[RW]
delay[RW]
delay_mod[RW]
direction[RW]
distance[RW]
id[RW]
section[RW]
spacing[RW]
Public Class Methods
new()
click to toggle source
# File lib/animatedledstrip/animation_data.rb, line 31 def initialize @animation = "Color" @colors = [] @center = -1 @continuous = nil @delay = -1 @delay_mod = 1.0 @direction = Direction::FORWARD @distance = -1 @id = "" @section = "" @spacing = -1 end
new_from_json(json_data)
click to toggle source
# File lib/animatedledstrip/animation_data.rb, line 87 def self.new_from_json(json_data) data = AnimationData.new data.animation = json_data["animation"] unless json_data["animation"].nil? json_data["colors"].each { |cc| data.add_color(ColorContainer.new_from_json cc) } data.center = json_data["center"] unless json_data["center"].nil? data.continuous = json_data["continuous"] data.delay = json_data["delay"] unless json_data["delay"].nil? data.delay_mod = json_data["delayMod"] unless json_data["delayMod"].nil? data.direction = Direction::from_string(json_data["direction"]) unless json_data["direction"].nil? data.distance = json_data["distance"] unless json_data["distance"].nil? data.id = json_data["id"] unless json_data["id"].nil? data.section = json_data["section"] unless json_data["section"].nil? data.spacing = json_data["spacing"] unless json_data["spacing"].nil? data end
Public Instance Methods
add_color(color)
click to toggle source
# File lib/animatedledstrip/animation_data.rb, line 45 def add_color(color) raise TypeError unless color.is_a? ColorContainer colors.push(color) end
json()
click to toggle source
@return [String]
# File lib/animatedledstrip/animation_data.rb, line 52 def json raise TypeError unless @animation.is_a? String raise TypeError unless @colors.is_a? Array raise TypeError unless @center.is_a? Integer unless @continuous.is_a?(TrueClass) || @continuous.is_a?(FalseClass) || @continuous.nil? raise TypeError end raise TypeError unless @delay.is_a? Integer raise TypeError unless @delay_mod.is_a? Float raise TypeError unless @direction.is_a? Integer raise TypeError unless @distance.is_a? Integer raise TypeError unless @id.is_a? String raise TypeError unless @section.is_a? String raise TypeError unless @spacing.is_a? Integer @colors.each { |cc| raise TypeError unless cc.is_a? ColorContainer } str = "DATA:{\"animation\":\"#{@animation}\","\ '"colors":[' @colors.each { |cc| str += "#{cc.json}," } str.delete_suffix! ',' str += '],'\ "\"center\":#{@center},"\ "\"continuous\":#{@continuous.nil? ? 'null' : @continuous},"\ "\"delay\":#{@delay},"\ "\"delayMod\":#{delay_mod},"\ "\"direction\":\"#{Direction.string(@direction)}\","\ "\"distance\":#{@distance},"\ "\"id\":\"#{@id}\","\ "\"section\":\"#{section}\","\ "\"spacing\":#{@spacing}}" str end