class GrapeSlate::SampleGenerator

Attributes

resource[R]
root[R]

Public Class Methods

new(resource) click to toggle source
# File lib/grape-slate/sample_generator.rb, line 7
def initialize(resource)
  @resource = resource
  @root     = resource.key.singularize
end

Public Instance Methods

request() click to toggle source
# File lib/grape-slate/sample_generator.rb, line 27
def request
  hash = sample

  return unless hash.present?

  JSON.pretty_generate(hash)
end
response(list = false) click to toggle source
# File lib/grape-slate/sample_generator.rb, line 35
def response(list = false)
  hash = sample(true)

  return unless hash.present?

  hash = [hash] if list

  JSON.pretty_generate(hash)
end
sample(id = false) click to toggle source
# File lib/grape-slate/sample_generator.rb, line 12
def sample(id = false)
  array = resource.unique_params.map do |param|
    next if param.name == root

    [param.name, param.example]
  end

  hash = Hash[array.compact]

  hash = hash.reverse_merge(id: Config.generate_id) if id
  hash = { root => hash } if Config.include_root

  hash
end