class Pavlok::Stimulus

Constants

VALID_RANGES

Attributes

stimulus[R]

Public Class Methods

make_beep(tune:, message:) click to toggle source
# File lib/pavlok/stimulus.rb, line 25
def self.make_beep(tune:, message:)
  self.new("beep", transform_to_api(tune), message)
end
make_vibrate(intensity:, message:) click to toggle source
# File lib/pavlok/stimulus.rb, line 21
def self.make_vibrate(intensity:, message:)
  self.new("vibration", transform_to_api(intensity), message)
end
make_zap(intensity:, message:) click to toggle source
# File lib/pavlok/stimulus.rb, line 17
def self.make_zap(intensity:, message:)
  self.new("zap", transform_to_api(intensity), message)
end
new(kind, value, message) click to toggle source
# File lib/pavlok/stimulus.rb, line 11
def initialize(kind, value, message)
  validate
  @kind, @value, @message = kind, value, message
  @stimulus = OpenStruct.new(value: value, kind: kind, message: message, data: { reason: message })
end

Private Instance Methods

transform_to_api(value) click to toggle source
# File lib/pavlok/stimulus.rb, line 36
def transform_to_api(value)
  ((value.to_f / 255) * 100).ceil.to_i
end
validate() click to toggle source
# File lib/pavlok/stimulus.rb, line 31
def validate
  raise InvalidStimulusTypeError if !VALID_RANGES.keys.include?(@kind)
  raise InvalidStimulusValueError if !VALID_RANGES[@kind].include?(@value)
end