Sha256: 7df6a7b339b17cf8522637fda56dc30bb7bebc168481e60809672e5756f678e4
Contents?: true
Size: 870 Bytes
Versions: 7
Compression:
Stored size: 870 Bytes
Contents
require 'action_controller' require 'betterdocs/responding' module Betterdocs::Representer extend ActiveSupport::Concern def as_json(*) singleton_class.ancestors.find do |c| c != singleton_class && c < Betterdocs::Representer end.hashify(self) end alias to_hash as_json def to_json(*a) JSON::generate(as_json, *a) end module ClassMethods def apply(object) object.extend self end def build_result_object {} end def hashify(object, &block) apply(object) result = build_result_object instance_exec(result, &block) result end def doc(type, name, **options, &block) docs.add_element(self, type, name, **options, &block) end def object_name(*) end def docs raise NotImplementedError, 'has to be implemented in including module' end end end
Version data entries
7 entries across 7 versions & 1 rubygems