Sha256: 6b494933771e4e3d3f86be9faa71f2876a0e451b582ee6c387990184670b4a6a

Contents?: true

Size: 810 Bytes

Versions: 2

Compression:

Stored size: 810 Bytes

Contents

# frozen_string_literal: true

module Ariadne
  module Forms
    module Dsl
      # :nodoc:
      class FormObject
        include InputMethods

        attr_reader :builder, :form, :id

        def initialize(builder:, form:, id: Ariadne.generate_id)
          @builder = builder
          @form = form
          @id = id

          yield(self) if block_given?
        end

        def group(**options, &block)
          add_input(InputGroup.new(builder: @builder, form: @form, **options, &block))
        end

        def button(**options, &block)
          add_input(ButtonInput.new(builder: @builder, form: @form, **options, &block))
        end

        def badge(**options, &block)
          add_input(Badge.new(builder: @builder, form: @form, **options, &block))
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ariadne_view_components-0.0.79 lib/ariadne/forms/dsl/form_object.rb
ariadne_view_components-0.0.76 lib/ariadne/forms/dsl/form_object.rb