Sha256: f4e1ec978c15afaf59e4e64a1fb880377a9d06028ef5486870218cd53c487f18

Contents?: true

Size: 383 Bytes

Versions: 2

Compression:

Stored size: 383 Bytes

Contents

module Structural
  class Hashifier
    def self.hashify(data)
      {}.tap do |hash|
        data.each do |key, value|
          hash[key.to_sym] = as_data(value)
        end
      end
    end

    def self.as_data(v)
      case v
      when Structural::Model then v.data
      when Array then v.first.is_a?(Structural::Model) ? v.map(&:data) : v
      else v end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
structural-0.2.0 lib/structural/hashifier.rb
structural-0.1.0 lib/structural/hashifier.rb