Sha256: 6af7b7b8bee8d8dd7ec7a7206e0465cc9fcee6fb52776fd1d193580edfcc5553

Contents?: true

Size: 430 Bytes

Versions: 4

Compression:

Stored size: 430 Bytes

Contents

module SmsAero::Optional
  private

  def initialize(opts)
    super opts.each_with_object({}) { |(key, val), obj| obj[key.to_sym] = val }
  end

  def __options__
    @__options__ ||= self.class.dry_initializer.attributes(self)
  end

  def respond_to_missing?(name, *)
    __options__.respond_to? name
  end

  def method_missing(*args, &block)
    respond_to_missing?(*args) ? __options__.send(*args, &block) : super
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sms_aero-0.2.0 lib/sms_aero/optional.rb
sms_aero-0.1.3 lib/sms_aero/optional.rb
sms_aero-0.1.2 lib/sms_aero/optional.rb
sms_aero-0.1.1 lib/sms_aero/optional.rb