Module: VzaarApi::Lib::HasAttributes
- Included in:
- Category, EncodingPreset, IngestRecipe, VzaarApi::LegacyRendition, Playlist, Rendition, Video
- Defined in:
- lib/vzaar_api/lib/has_attributes.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(klass) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/vzaar_api/lib/has_attributes.rb', line 5 def self.prepended(klass) klass::ATTR_READERS.each do |attr| klass.send :attr_reader, attr end unless defined? klass::ATTR_ACCESSORS klass.const_set 'ATTR_ACCESSORS', [].freeze end klass::ATTR_ACCESSORS.each do |attr| klass.send :attr_accessor, attr klass.send(:define_method, "#{attr}=") do |val| if self.changes[attr] self.changes[attr][1] = val else self.changes[attr] = [self.send(attr), val] end val end end end |
Instance Method Details
#initialize(attrs = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/vzaar_api/lib/has_attributes.rb', line 28 def initialize(attrs = {}) self.class::ATTR_READERS.each do |attr| instance_variable_set("@#{attr}", attrs[attr]) end self.class::ATTR_ACCESSORS.each do |attr| instance_variable_set("@#{attr}", attrs[attr]) end super end |