Class: MIDIMessage::ChannelMessage::Accessors
- Inherits:
-
Object
- Object
- MIDIMessage::ChannelMessage::Accessors
- Defined in:
- lib/midi-message/channel_message.rb
Constant Summary collapse
- SCHEMA =
[ { :name => :status, :index => 1 }, # second status nibble { :name => :data, :index => 0 }, # first data byte { :name => :data, :index => 1 } # second data byte ].freeze
Class Method Summary collapse
- .decorate(klass) ⇒ Class
-
.initialize(message) ⇒ Boolean
Initialize a message object with it’s properties.
Instance Method Summary collapse
- #decorate ⇒ Class
-
#initialize(klass) ⇒ Accessors
constructor
A new instance of Accessors.
Constructor Details
#initialize(klass) ⇒ Accessors
Returns a new instance of Accessors.
83 84 85 |
# File 'lib/midi-message/channel_message.rb', line 83 def initialize(klass) @klass = klass end |
Class Method Details
.decorate(klass) ⇒ Class
64 65 66 67 |
# File 'lib/midi-message/channel_message.rb', line 64 def self.decorate(klass) decorator = new(klass) decorator.decorate end |
.initialize(message) ⇒ Boolean
Initialize a message object with it’s properties
72 73 74 75 76 77 78 79 80 |
# File 'lib/midi-message/channel_message.rb', line 72 def self.initialize() .class.properties.each_with_index do |property, i| data_mapping = SCHEMA[i] container = .send(data_mapping[:name]) index = data_mapping[:index] .send(:instance_variable_set, "@#{property.to_s}", container[index]) end true end |
Instance Method Details
#decorate ⇒ Class
88 89 90 91 92 93 94 95 |
# File 'lib/midi-message/channel_message.rb', line 88 def decorate @klass.properties.each_with_index do |property, i| data_mapping = SCHEMA[i] define_getter(property) define_setter(property, data_mapping) end @klass end |