Sha256: 60d0348c9ddad45e3376908540ef330feda9a5b6c06b02d258f32bf50ca76ddd

Contents?: true

Size: 547 Bytes

Versions: 8

Compression:

Stored size: 547 Bytes

Contents

module Transcriber
  class Resource
    module Response
      module Embeddable
        def to_resource(parent)
          return {} unless visible?(parent)
          resource = nil

          if embedded = parent.__send__(name)
            resource = raw? ? embedded : resourcify(embedded)
          elsif many?
            resource = []
          end

          {name => resource}
        end

        private

        def resourcify(embedded)
          one? ? embedded.resource : embedded.map(&:resource)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
transcriber-0.0.25 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.24 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.23 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.22 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.21 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.20 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.19 lib/transcriber/resource/response/embeddable.rb
transcriber-0.0.18 lib/transcriber/resource/response/embeddable.rb