Sha256: 82d3d30e8d26ff825184cff81557bafa915aaa0e89d1e9f06dd8707a14dadf38
Contents?: true
Size: 910 Bytes
Versions: 5
Compression:
Stored size: 910 Bytes
Contents
class Betterdocs::Dsl::Controller::Action::Response include Betterdocs::Dsl::Common extend Tins::DSLAccessor def initialize(name = :default, &block) @name = name.to_sym @data_block = block || proc {} end dsl_accessor :name def params -> name { param(name).full?(:value) } end def data @data ||= instance_eval(&@data_block) end def properties representer.full? { |r| r.docs.nested_properties } || [] end def links representer.full? { |r| r.docs.nested_links } || [] end def representer data or return data.ask_and_send(:representer) || inherited_representer(data) end private\ def inherited_representer(data) data.singleton_class.ancestors.find { |c| Betterdocs::ResultRepresenter >= c && c.respond_to?(:docs) } end def to_json(*a) my_data = data.ask_and_send(:to_hash) || data my_data.to_json(*a) end end
Version data entries
5 entries across 5 versions & 1 rubygems