Module: NXT::Utils::Accessors

Includes:
Assertions
Included in:
Command::Input, Command::LowSpeed, Command::Output, Connector::Input::Ultrasonic, Connector::Output::Motor
Defined in:
lib/nxt/utils/accessors.rb

Overview

Utilities related to creating accessors that have some conditonal guards when setting values.

Instance Method Summary collapse

Methods included from Assertions

#assert_in, #assert_responds_to, #assert_type

Instance Method Details

#attr_setter(name, options) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/nxt/utils/accessors.rb', line 10

def attr_setter(name, options)
  define_method("#{name}=") do |value|
    assert_type(name, value, options[:is]) if options.include?(:is)
    assert_in(name, value, options[:is_key_in]) if options.include?(:is_key_in)

    instance_variable_set("@#{name}", value)
    self
  end
end