Sha256: e102df01ae6fe56dd214d6c7aaa509199be921222796237c6efecf3c52e61db1

Contents?: true

Size: 773 Bytes

Versions: 5

Compression:

Stored size: 773 Bytes

Contents

# Buffers api declarations in rails controllers (e.g. `param :foo, ...`)
# until the next action method is defined (e.g. `def create`).
module Taro::Rails::DeclarationBuffer
  def buffered_declaration(controller_class)
    buffered_declarations[controller_class] ||= Taro::Rails::Declaration.new
  end

  def buffered_declarations
    @buffered_declarations ||= {}
  end

  def apply_buffered_declaration(controller_class, action_name)
    declaration = pop_buffered_declaration(controller_class)
    return unless declaration

    declaration.finalize(controller_class:, action_name:)

    Taro::Rails.apply(declaration:, controller_class:, action_name:)
  end

  def pop_buffered_declaration(controller_class)
    buffered_declarations.delete(controller_class)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
taro-1.4.0 lib/taro/rails/declaration_buffer.rb
taro-1.3.0 lib/taro/rails/declaration_buffer.rb
taro-1.2.0 lib/taro/rails/declaration_buffer.rb
taro-1.1.0 lib/taro/rails/declaration_buffer.rb
taro-1.0.0 lib/taro/rails/declaration_buffer.rb