Sha256: bdde97b761a1bf50047d1c5e34b16ecf103de47e2a9e2489621d4594d3ba82df

Contents?: true

Size: 413 Bytes

Versions: 2

Compression:

Stored size: 413 Bytes

Contents

module Upholsterer
  class Base
    def to_hash
      Hash[json_fields.collect do |field|
        [field, public_send(field)]
      end]
    end

    def to_json(*args)
      to_hash.to_json(*args)
    end

    alias :to_h :to_hash
    alias :as_json :to_json

    private
    def json_fields
      @json_fields ||= public_methods(false).tap do |fields|
        fields.delete(:subject)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
upholsterer-0.4.2 lib/upholsterer/json_presenter.rb
upholsterer-0.4.1 lib/upholsterer/json_presenter.rb