Module: UniMIDI::CongruousApiAdapter::Device::ClassMethods

Included in:
UniMIDI::CongruousApiDevice, UniMIDI::CongruousApiInput, UniMIDI::CongruousApiOutput
Defined in:
lib/unimidi/congruous_api_adapter.rb

Instance Method Summary collapse

Instance Method Details

#allObject

returns all devices in an array



59
60
61
# File 'lib/unimidi/congruous_api_adapter.rb', line 59

def all
  all_by_type.values.flatten
end

#all_by_typeObject

returns all devices as a hash as such

{ :input => [input devices], :output => [output devices] }


65
66
67
68
69
70
# File 'lib/unimidi/congruous_api_adapter.rb', line 65

def all_by_type
  {
    :input => @deference[self].all_by_type[:input].map { |d| @input_class.new(d) },
    :output => @deference[self].all_by_type[:output].map { |d| @output_class.new(d) }
  }
end

#defer_to(klass) ⇒ Object



72
73
74
75
# File 'lib/unimidi/congruous_api_adapter.rb', line 72

def defer_to(klass)
  @deference ||= {}
  @deference[self] = klass
end

#first(*a) ⇒ Object

returns the first device for this class



45
46
47
48
49
# File 'lib/unimidi/congruous_api_adapter.rb', line 45

def first(*a)
  dev = @deference[self].first(*a)
  raise 'Device not found' if dev.nil?
  new(dev)
end

#input_class(klass) ⇒ Object



77
78
79
# File 'lib/unimidi/congruous_api_adapter.rb', line 77

def input_class(klass)
  @input_class = klass
end

#last(*a) ⇒ Object

returns the last device for this class



52
53
54
55
56
# File 'lib/unimidi/congruous_api_adapter.rb', line 52

def last(*a)
  dev = @deference[self].last(*a)
  raise 'Device not found' if dev.nil?
  new(dev)          
end

#output_class(klass) ⇒ Object



81
82
83
# File 'lib/unimidi/congruous_api_adapter.rb', line 81

def output_class(klass)
  @output_class = klass
end