Sha256: 58160db6bbafc392049b756a1577aa6b5f7d0f4a737a3683cfce7dd82717834c
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true # author: Vadim Shaveiko <@vshaveyko> class RailsApiDoc::Controller::Parameter::Repository::Param ACCEPTED_TYPES = [::Bool, String, Integer, Object, Array, DateTime, :enum, :model].freeze # @type - type to check def self.accepted_nested_type?(type) type == Object || type == :model end def self.valid_type?(type) return if type.in?(ACCEPTED_TYPES) raise ArgumentError, "Wrong type: #{type}. " \ "Correct types are: #{ACCEPTED_TYPES}." end def self.valid_enum?(enum) return if enum.nil? || enum.is_a?(Array) raise ArgumentError, 'Enum must be an array.' end def self.valid_nested?(type, block_given) return false unless accepted_nested_type?(type) return true if block_given raise ArgumentError, 'Empty object passed.' end def initialize(name, store) @name = name @store = store end def nested? self.class.accepted_nested_type?(@store[:type]) end def required? @store[:required] end def method_missing(name, *args) return @store.send(name, *args) if respond_to_missing?(name) super end def respond_to_missing?(name) @store.respond_to?(name) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails_api_documentation-0.1.9 | lib/rails_api_doc/controller/parameter/repository/param.rb |
rails_api_documentation-0.1.8 | lib/rails_api_doc/controller/parameter/repository/param.rb |