Sha256: 7800e6d025aaf931733fab93d01713719dc671c36a79a46276ebd5805bcbcfda
Contents?: true
Size: 886 Bytes
Versions: 65
Compression:
Stored size: 886 Bytes
Contents
module JsonapiCompliable module Extensions # Turns ruby ? methods into is_ attributes # # @example Basic Usage # boolean_attribute :active? # # # equivalent do # def is_active # @object.active? # end module BooleanAttribute def self.included(klass) klass.extend ClassMethods end module ClassMethods # Register a boolean attribute # @param name the corresponding ? method # @param [Hash] options Normal .attribute options def boolean_attribute(name, options = {}, &blk) blk ||= proc { @object.public_send(name) } field_name = :"is_#{name.to_s.gsub('?', '')}" attribute field_name, options, &blk end end end end end JSONAPI::Serializable::Resource.class_eval do include JsonapiCompliable::Extensions::BooleanAttribute end
Version data entries
65 entries across 65 versions & 1 rubygems