Class: Mediainfo::Stream
- Inherits:
-
Object
show all
- Defined in:
- lib/mediainfo.rb
Defined Under Namespace
Classes: InvalidStreamType
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(stream_type) ⇒ Stream
Returns a new instance of Stream.
152
153
154
155
156
157
158
159
160
161
|
# File 'lib/mediainfo.rb', line 152
def initialize(stream_type)
raise ArgumentError, "need a stream_type, received #{stream_type.inspect}" if stream_type.nil?
@stream_type = stream_type.downcase.to_sym
@parsed_response = { @stream_type => {} }
end
|
Class Method Details
.create(stream_type) ⇒ Object
140
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/mediainfo.rb', line 140
def self.create(stream_type)
raise ArgumentError, "need a stream_type, received #{stream_type.inspect}" if stream_type.nil?
stream_class_name = "#{stream_type}Stream"
if Mediainfo.const_defined?(stream_class_name)
Mediainfo.const_get(stream_class_name).new(stream_type)
else
raise InvalidStreamType, "bad stream type: #{stream_type.inspect}"
end
end
|
.inherited(stream_type) ⇒ Object
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/mediainfo.rb', line 125
def self.inherited(stream_type)
stream_type.extend(AttrReaders)
def stream_type.method_added(method_name)
if stream_type = name[/[^:]+$/][/^(#{SECTIONS.map { |x| x.to_s.capitalize } * '|'})/]
stream_type.downcase!
stream_type = stream_type.to_sym
else
raise "could not determine stream type, please report bug!"
end
Mediainfo.delegate(method_name, stream_type)
end
end
|
Instance Method Details
#[](k) ⇒ Object
163
|
# File 'lib/mediainfo.rb', line 163
def [](k); @parsed_response[@stream_type][k]; end
|
#[]=(k, v) ⇒ Object
164
|
# File 'lib/mediainfo.rb', line 164
def []=(k,v); @parsed_response[@stream_type][k] = v; end
|