Sha256: 624ed55907dfc4b8a7196e66b1d93ba49f1cae513a25bebc177b4df2e5d59aa0

Contents?: true

Size: 398 Bytes

Versions: 1

Compression:

Stored size: 398 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
    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

1 entries across 1 versions & 1 rubygems

Version Path
upholsterer-0.4.3 lib/upholsterer/json_presenter.rb