Sha256: bde5e430273776d5dea6d077e8e3c8a3fa70d98482c8aed7fc33117db8e4ce3a

Contents?: true

Size: 896 Bytes

Versions: 9

Compression:

Stored size: 896 Bytes

Contents

# frozen_string_literal: true

module StimulusReflex
  class CableReadyChannels
    delegate :[], to: "cable_ready_channels"

    def initialize(stream_name, reflex_id)
      @stream_name = stream_name
      @reflex_id = reflex_id
    end

    def cable_ready_channels
      CableReady::Channels.instance
    end

    def stimulus_reflex_channel
      CableReady::Channels.instance[@stream_name]
    end

    def method_missing(name, *args)
      if stimulus_reflex_channel.respond_to?(name)
        if (options = args.find_index { |a| a.is_a? Hash })
          args[options][:reflex_id] = @reflex_id
        elsif args.any?
          args << {reflex_id: @reflex_id}
        end
        return stimulus_reflex_channel.public_send(name, *args)
      end
      super
    end

    def respond_to_missing?(name, include_all)
      stimulus_reflex_channel.respond_to?(name) || super
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
stimulus_reflex-3.5.0.pre9 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre8 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre7 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre6 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre5 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre4 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre3 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre2 lib/stimulus_reflex/cable_ready_channels.rb
stimulus_reflex-3.5.0.pre1 lib/stimulus_reflex/cable_ready_channels.rb