Sha256: d4f0a887158009e6c6686fd59a8f3580aab613de6276f0261ad605e75fff5eda

Contents?: true

Size: 1.04 KB

Versions: 14

Compression:

Stored size: 1.04 KB

Contents

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

module Crowdskout
  module Components
    class Item < Component
      attr_accessor :id, :fields, :delete

      # Factory method to create an Item object from a json string
      # @param [Hash] props - properties to create object from
      # @return [Item]
      def self.create(props)
        obj = Item.new
        obj.id = 0
        obj.fields = []
        if props
          props.each do |key, value|
            if ['id'].include? key.downcase
              obj.send("#{key}=", value) if obj.respond_to? key
            else
              # key is the name of the field
              # value is the field's value
              obj.fields << Components::Field.create({key => value})
            end
          end
        end
        obj
      end

      # Hash override to generate the correct hash
      def to_hash
        ret_val = { id: id }
        fields.each do |field|
          ret_val.merge! field.to_hash
        end
        ret_val
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
crowdskout-0.1.5 lib/crowdskout/components/profiles/item.rb
crowdskout-0.1.4 lib/crowdskout/components/profiles/item.rb
crowdskout-0.1.3 lib/crowdskout/components/profiles/item.rb
crowdskout-0.1.2 lib/crowdskout/components/profiles/item.rb
crowdskout-0.1.1 lib/crowdskout/components/profiles/item.rb
crowdskout-0.1.0 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.20 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.19 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.13 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.10 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.9 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.8 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.7 lib/crowdskout/components/profiles/item.rb
crowdskout-0.0.6 lib/crowdskout/components/profiles/item.rb