Sha256: 5d2f41408b307292f5b574ad2656ea74cffd64acc4cbedaf322e66cb9793c283

Contents?: true

Size: 878 Bytes

Versions: 4

Compression:

Stored size: 878 Bytes

Contents

#
# collection.rb
# Crowdskout
#
# Copyright (c) 2016 Kyle Schutt. All rights reserved.

module Crowdskout
  module Components
    class Collection < Component
      attr_accessor :key_name, :items

      # Factory method to create an Collection object from a json string
      # @param [String] key_name - name of the collection
      # @param [Array] items - properties to create object from
      # @return [Collection]
      def self.create(props)
        obj = Collection.new
        obj.items = []
        props.each do |key, value|
          obj.key_name = key
          value.each do |collection|
            obj.items << Components::Item.create(collection)
          end
        end
        obj
      end

      # Hash override to generate the correct hash
      def to_hash
        {
          key_name => items.collect(&:to_hash)
        }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
crowdskout-0.0.9 lib/crowdskout/components/profiles/collection.rb
crowdskout-0.0.8 lib/crowdskout/components/profiles/collection.rb
crowdskout-0.0.7 lib/crowdskout/components/profiles/collection.rb
crowdskout-0.0.6 lib/crowdskout/components/profiles/collection.rb