Sha256: b7916f4af66d949bae16799f2cbc1fd0d2edfacb04ac18cd09fca7b8d4e17245

Contents?: true

Size: 1.22 KB

Versions: 39

Compression:

Stored size: 1.22 KB

Contents

module Unpoly
  module Rails
    class Change
      class Layer
        class CannotClose < Error; end

        def initialize(change, mode:, context:)
          @change = change
          @mode = mode.presence || 'root'
          @context = context
        end

        ##
        # TODO: Docs
        attr_reader :mode

        ##
        # TODO: Docs
        attr_reader :context

        ##
        # TODO: Docs
        def overlay?
          not root?
        end

        ##
        # TODO: Docs
        def root?
          mode == 'root'
        end

        ##
        # TODO: Docs
        def emit(type, options = {})
          change.emit(type, options.merge(layer: 'current'))
        end

        ##
        # TODO: Docs
        def accept(value = nil)
          overlay? or raise CannotClose, 'Cannot accept the root layer'
          change.response.headers['X-Up-Accept-Layer'] = Util.safe_json_encode(value)
        end

        ##
        # TODO: Docs
        def dismiss(value = nil)
          overlay? or raise CannotClose, 'Cannot dismiss the root layer'
          change.response.headers['X-Up-Dismiss-Layer'] = Util.safe_json_encode(value)
        end

        private

        attr_reader :change

      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
unpoly-rails-3.10.2 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.10.0 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.10.0.rc1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.5 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.3.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.3 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.2.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.2 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.9.0 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.8.0.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.8.0 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.8.0.rc1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.3.2 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.3.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.3 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.2 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.0.1 lib/unpoly/rails/change/layer.rb
unpoly-rails-3.7.0 lib/unpoly/rails/change/layer.rb