Sha256: f94cdeafb8102cb15878884975e72cebdc589c207a503864c0e550a24eacf660
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
module GrapeApiary class Parameter attr_reader :route, :name, :settings delegate :route_model, :route_namespace, to: :route delegate :requirement, :type, :example, :desc, to: :settings def initialize(route, name, options) @route = route @name = name @name = name.scan(/\[(.*)\]/).flatten.first if name.include?('[') @settings = parse_options(options) end def description "#{name} (#{requirement}, #{type}, `#{example}`) ... #{desc}" end private def parse_options(options) options = default_options(options) if options.blank? options[:requirement] = options[:required] ? 'required' : 'optional' Hashie::Mash.new(options) end def default_options(options) model = name.include?('_id') ? name.gsub('_id', '') : route.route_model { required: true, requirement: 'required', type: 'uuid', desc: "the `id` of the `#{model}`", example: SecureRandom.uuid } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
grape-apiary-0.0.2 | lib/grape-apiary/parameter.rb |
grape-apiary-0.0.1 | lib/grape-apiary/parameter.rb |