Sha256: a994c554690729de8d04be541669805d572d43929a1b49ff943c40a16cc60fb9

Contents?: true

Size: 907 Bytes

Versions: 9

Compression:

Stored size: 907 Bytes

Contents

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

module Crowdskout
  module Components
    class Field < Component
      # value can either be a string or a hash
      attr_accessor :key_name, :value

      # Factory method to create an Field object from a json string
      # @param [String] key_name - name of the Field
      # @param [Hash or String] value - properties to create object from
      # @return [Field]
      def self.create(props)
        obj = Field.new
        props.each do |key, value|
          obj.key_name = key
          if value.is_a?(Hash)
            obj.value = Value.create(value)
          else
            obj.value = value
          end
        end
        obj
      end

      # Hash override to generate the correct hash
      def to_hash
        {
          key_name => (value.to_hash rescue value)
        }
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
crowdskout-0.1.5 lib/crowdskout/components/profiles/field.rb
crowdskout-0.1.4 lib/crowdskout/components/profiles/field.rb
crowdskout-0.1.3 lib/crowdskout/components/profiles/field.rb
crowdskout-0.1.2 lib/crowdskout/components/profiles/field.rb
crowdskout-0.1.1 lib/crowdskout/components/profiles/field.rb
crowdskout-0.1.0 lib/crowdskout/components/profiles/field.rb
crowdskout-0.0.20 lib/crowdskout/components/profiles/field.rb
crowdskout-0.0.19 lib/crowdskout/components/profiles/field.rb
crowdskout-0.0.13 lib/crowdskout/components/profiles/field.rb