Sha256: ff2f3bf8179cadc5ea59dfd96344e196e8674f813d2f79ba716ff483e68ab79d

Contents?: true

Size: 696 Bytes

Versions: 6

Compression:

Stored size: 696 Bytes

Contents

module SoberSwag
  class OutputObject
    ##
    # Container to define a single output object.
    # This is the DSL used in the base of {SoberSwag::OutputObject.define}.
    class Definition
      def initialize
        @fields = []
        @views = []
      end

      attr_reader :fields, :views

      include FieldSyntax

      def add_field!(field)
        @fields << field
      end

      def view(name, &block)
        view = View.define(name, fields, &block)

        view.identifier("#{@identifier}.#{name.to_s.classify}") if identifier

        @views << view
      end

      def identifier(arg = nil)
        @identifier = arg if arg
        @identifier
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sober_swag-0.14.0 lib/sober_swag/output_object/definition.rb
sober_swag-0.13.0 lib/sober_swag/output_object/definition.rb
sober_swag-0.12.0 lib/sober_swag/output_object/definition.rb
sober_swag-0.11.0 lib/sober_swag/output_object/definition.rb
sober_swag-0.10.0 lib/sober_swag/output_object/definition.rb
sober_swag-0.9.0 lib/sober_swag/output_object/definition.rb