Class: Betterdocs::Dsl::Controller::Action::Response

Inherits:
Object
  • Object
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

Methods included from Betterdocs::Dsl::Common

#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

#dataObject



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


30
31
32
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 30

def links
  representer.full? { |r| r.docs.nested_links }  || []
end

#paramsObject



14
15
16
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 14

def params
  -> name { param(name).full?(:value) }
end

#propertiesObject



26
27
28
# File 'lib/betterdocs/dsl/controller/action/response.rb', line 26

def properties
  representer.full? { |r| r.docs.nested_properties }  || []
end

#representerObject



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