Class: RailsApiDoc::Controller::Parameter::Repository::Param
- Inherits:
-
Object
- Object
- RailsApiDoc::Controller::Parameter::Repository::Param
show all
- Defined in:
- lib/rails_api_doc/controller/parameter/repository/param.rb
Overview
author: Vadim Shaveiko <@vshaveyko>
Constant Summary
collapse
- ACCEPTED_TYPES =
[String, Integer, Object, Array, DateTime, :enum, :model].freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, store) ⇒ Param
29
30
31
32
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 29
def initialize(name, store)
@name = name
@store = store
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
42
43
44
45
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 42
def method_missing(name, *args)
return @store.send(name, *args) if respond_to_missing?(name)
super
end
|
Class Method Details
.accepted_nested_type?(type) ⇒ Boolean
8
9
10
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 8
def self.accepted_nested_type?(type)
type == Object || type == :model
end
|
.valid_enum?(enum) ⇒ Boolean
18
19
20
21
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 18
def self.valid_enum?(enum)
return if enum.nil? || enum.is_a?(Array)
raise ArgumentError, 'Enum must be an array.'
end
|
.valid_nested?(type, block_given) ⇒ Boolean
23
24
25
26
27
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 23
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
|
.valid_type?(type) ⇒ Boolean
12
13
14
15
16
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 12
def self.valid_type?(type)
return if type.in?(ACCEPTED_TYPES)
raise ArgumentError, "Wrong type: #{type}. " \
"Correct types are: #{ACCEPTED_TYPES}."
end
|
Instance Method Details
#nested? ⇒ Boolean
34
35
36
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 34
def nested?
self.class.accepted_nested_type?(@store[:type])
end
|
#required? ⇒ Boolean
38
39
40
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 38
def required?
@store[:required]
end
|
#respond_to_missing?(name) ⇒ Boolean
47
48
49
|
# File 'lib/rails_api_doc/controller/parameter/repository/param.rb', line 47
def respond_to_missing?(name)
@store.respond_to?(name)
end
|