Sha256: 2b7708ab5927299d15819d6495297eb1e8d13d43a8b79406741506f505a3eddb
Contents?: true
Size: 799 Bytes
Versions: 1
Compression:
Stored size: 799 Bytes
Contents
module TicketingHub class Consumer < Resource schema do integer :id string :first_name, :last_name, :email, :country end def self.from_fields fields new.tap do |consumer| consumer.instance_eval do @schema ||= singleton_class.schema do fields.each do |field| type = Schema::KNOWN_ATTRIBUTE_TYPES.member?(field['type']) ? field['type'] : 'string' send type, field['name'] end end fields.each do |field| singleton_class.validates_presence_of field['name'] if field['required'] send "#{field['name']}=", field['value'] field['errors'].each { |error| errors.add field['name'], error } end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ticketinghub-0.0.2 | lib/ticketing_hub/consumer.rb |