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