Class: Betterdocs::Dsl::Controller::Action::Response
- Inherits:
-
Object
- Object
- Betterdocs::Dsl::Controller::Action::Response
show all
- Extended by:
- Tins::DSLAccessor
- Includes:
- Betterdocs::Dsl::Common
- Defined in:
- lib/betterdocs/dsl/controller/action/response.rb
Defined Under Namespace
Classes: Error
Instance Method Summary
collapse
#set_context
Constructor Details
#initialize(name = :default, &block) ⇒ Response
Returns a new instance of Response.
7
8
9
10
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 7
def initialize(name = :default, &block)
@name = name.to_sym
@data_block = block || proc {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Betterdocs::Dsl::Common
Instance Method Details
#data ⇒ Object
18
19
20
21
22
23
24
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 18
def data
@data ||= instance_eval(&@data_block)
rescue => e
error = Error.new("#{e.class}: #{e}")
error.set_backtrace e.backtrace.grep(/^#{Betterdocs.rails.root}/)
raise error
end
|
#links ⇒ Object
30
31
32
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 30
def links
representer.full? { |r| r.docs.nested_links } || []
end
|
#params ⇒ Object
14
15
16
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 14
def params
-> name { param(name).full?(:value) }
end
|
#properties ⇒ Object
26
27
28
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 26
def properties
representer.full? { |r| r.docs.nested_properties } || []
end
|
#representer ⇒ Object
34
35
36
37
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 34
def representer
data or return
data.ask_and_send(:representer) || inherited_representer(data)
end
|
#to_json(*a) ⇒ Object
46
47
48
49
|
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 46
def to_json(*a)
my_data = data.ask_and_send(:to_hash) || data
my_data.to_json(*a)
end
|