class MediaEmbed::OptionsHandler

Attributes

prioritized_options[RW]
remaining_options[RW]

Public Class Methods

new(prioritized_options_name, options_hash) click to toggle source
# File lib/media_embed/options_handler.rb, line 6
def initialize(prioritized_options_name, options_hash)
  @prioritized_options_name = prioritized_options_name
  @options_hash =  transform_synonymous_keys(options_hash)

  split_options
  override_duplicate_remaining_options
end

Public Instance Methods

consolidate_options() click to toggle source
# File lib/media_embed/options_handler.rb, line 14
def consolidate_options
  prioritized_options.merge(remaining_options)
end

Private Instance Methods

keys_synonym(key) click to toggle source
# File lib/media_embed/options_handler.rb, line 38
def keys_synonym(key)
  key == :auto_play ? :autoplay : key
end
override_duplicate_remaining_options() click to toggle source
# File lib/media_embed/options_handler.rb, line 25
def override_duplicate_remaining_options
  remaining_options.reject! do |option_name, _|
    prioritized_options.keys.include?(option_name)
  end
end
split_options() click to toggle source
# File lib/media_embed/options_handler.rb, line 20
def split_options
  self.remaining_options = @options_hash.dup
  self.prioritized_options = remaining_options.delete(@prioritized_options_name) || {}
end
transform_synonymous_keys(options) click to toggle source
# File lib/media_embed/options_handler.rb, line 31
def transform_synonymous_keys(options)
  Hash[ options.map do |key, value|
    [ keys_synonym(key), value.is_a?(Hash) ? transform_synonymous_keys(value) : value ]
  end
  ]
end