Sha256: 3bff4cc5fcc5801c45a15fb6029be032cda9f5a578b0fb0a0b6a545dbc24f284

Contents?: true

Size: 1.36 KB

Versions: 9

Compression:

Stored size: 1.36 KB

Contents

module Bitmovin::Encoding::Encodings
  class StreamInput
    def initialize(encoding_id, stream_id, hash)
      @errors = []
      @encoding_id = encoding_id
      @stream_id = stream_id
      hash.each do |name, value|
        instance_variable_set("@#{ActiveSupport::Inflector.underscore(name)}", value)
      end
    end

    attr_accessor :encoding_id, :stream_id
    attr_accessor :input_id, :input_path, :selection_mode, :position

    def valid?
      validate!
      @errors.empty?
    end

    def invalid?
      !valid?
    end

    def errors
      @errors
    end

    def to_json(args)
      collect_attributes.to_json(args)
    end

    private 
    def collect_attributes
      val = Hash.new
      [:input_id, :input_path, :selection_mode, :position].each do |name|
        json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
        value = instance_variable_get("@#{name}")
        if (!value.nil?)
          val[json_name] = instance_variable_get("@#{name}")
        end
      end
      val
    end
    def validate!
      @errors << "input_id cannot be blank" if @input_id.blank?
      @errors << "input_path cannot be blank" if @input_path.blank?
      @errors << "selection_mode cannot be blank" if @selection_mode.blank?
      @errors << "position cannot be blank if selection_mode is not AUTO" if @position.blank? && @selection_mode != "AUTO"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bitmovin-ruby-0.8.1 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.8.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.7.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.5.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.4.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.3.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.2.0 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.1.1 lib/bitmovin/encoding/encodings/stream_input.rb
bitmovin-ruby-0.1.0 lib/bitmovin/encoding/encodings/stream_input.rb