Sha256: bc294ab1a31d593e9a39dc326d8e0fe99f1c0d33587cc775a6703ffa7e499349

Contents?: true

Size: 1.56 KB

Versions: 8

Compression:

Stored size: 1.56 KB

Contents

#!/usr/bin/env ruby

require 'slop'
require 'fakeit'
require 'rack/cors'

usage = nil
begin
  opts = Slop.parse do |o|
    o.string '--spec', 'spec file uri (required)', required: true
    o.integer '-p', '--port', 'custom port'
    o.bool '-q', '--quiet', 'mute request and response log'
    o.bool '--permissive', 'log validation error as warning instead of denying request'
    o.bool '--use-example', 'use example provided in spec if exists'
    o.bool '--static', 'generate static response'
    o.array '--static-types', 'generate static value for specified types, e.g. --static-types integer,string'
    o.array '--static-properties', 'generate static value for specified properties, e.g. --static-properties id,uuid'
    o.separator ''
    o.separator 'other options:'
    o.on '-v', '--version' do
      puts Fakeit::VERSION
      exit
    end
    o.on '-h', '--help' do
      puts o
      exit
    end

    usage = o
  end
rescue Slop::Error => e
  puts e.message
  puts usage
  exit
end

server = Rack::Handler::WEBrick

trap(:INT) do
  if server.respond_to?(:shutdown)
    server.shutdown
  else
    exit
  end
end

options = Fakeit::App::Options.new(
  permissive: opts.permissive?,
  use_example: opts.use_example?,
  static: opts.static?,
  static_types: opts[:static_types],
  static_properties: opts[:static_properties]
)
app = Fakeit.build(opts[:spec], options)

app.use Rack::Cors do
  allow do
    origins '*'
    resource '*', headers: :any, methods: :any
  end
end
app.use(Fakeit::Middleware::Recorder) unless opts.quiet?

server.run(app, Port: opts[:port], Host: '0.0.0.0')

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fakeit-0.6.3 bin/fakeit
fakeit-0.6.2 bin/fakeit
fakeit-0.6.1 bin/fakeit
fakeit-0.6.0 bin/fakeit
fakeit-0.5.3 bin/fakeit
fakeit-0.5.2 bin/fakeit
fakeit-0.5.1 bin/fakeit
fakeit-0.5.0 bin/fakeit