Sha256: 7d40a4fea0b3ef08d9902188702c3a0e82c5e637702a983b8beca2b97f1da325

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

module GrapeApiary
  class SampleGenerator
    attr_reader :resource

    delegate :unique_params, to: :resource

    def initialize(resource)
      @resource = resource
    end

    def sample
      @sample ||= begin
        array = resource.unique_params.map do |resource|
          [resource.name, resource.example]
        end

        Hash[array]
      end
    end

    def request
      return unless sample.present?

      # format json spaces for blueprint markdown
      JSON.pretty_generate(sample)
        .gsub('{', (' ' * 14) + '{')
        .gsub('}', (' ' * 14) + '}')
        .gsub(/\ {2}\"/, (' ' * 16) + '"')
    end

    def response
      return unless sample.present?

      hash = sample.reverse_merge(id: GrapeApiary::Config.generate_id)
      # sample = [sample] if list?(route)

      # format json spaces for blueprint markdown
      JSON.pretty_generate(hash)
        .gsub('[', (' ' * 12) + '[')
        .gsub(']', (' ' * 12) + ']')
        .gsub('{', (' ' * 14) + '{')
        .gsub('}', (' ' * 14) + '}')
        .gsub(/\ {2}\"/, (' ' * 16) + '"')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grape-apiary-0.0.4 lib/grape-apiary/sample_generator.rb
grape-apiary-0.0.3 lib/grape-apiary/sample_generator.rb