Sha256: fcc51beedb86eef0ef50c90ca1c886a28ceace924aedf8616bd3ebc37f3cb65e

Contents?: true

Size: 1.22 KB

Versions: 4

Compression:

Stored size: 1.22 KB

Contents

module Noodall
  class Form
    include MongoMapper::Document
    plugin MongoMapper::Plugins::MultiParameterAttributes
    plugin Noodall::GlobalUpdateTime
  
    key :title, String, :required => true
    key :description, String
    key :email, String, :format => /.+\@.+\..+/
  
    MANDATORY_FIELDS = ['Name','Email']
    many :fields, :class => Noodall::Field
    many :responses, :class => Noodall::FormResponse do
      def ham
        self.select {|r| r.spaminess < (self.class.defensio_config['spam_threshold'] || 0.75)}
      end
      def spam
        self.select {|r| r.spaminess >= (self.class.defensio_config['spam_threshold'] || 0.75)}
      end
    end
  
    before_save :create_mandatory_fields!
  
    timestamps!
  
    validates_associated :fields, :message => "have not had a name completed"
  
    def boolean_fields
      self.fields.select{|f| f.class == Noodall::CheckBox }
    end
  
    def required_fields
      self.fields.select{|f| f.required }
    end
  
    def create_mandatory_fields!
      MANDATORY_FIELDS.each do |mf|
        if fields.blank? or fields.select{|f| f.name == mf }.empty?
          self.fields << Noodall::TextField.new(:name => mf, :required => true)
        end
      end
    end
  
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
noodall-form-builder-0.0.10 app/models/noodall/form.rb
noodall-form-builder-0.0.9 app/models/noodall/form.rb
noodall-form-builder-0.0.8 app/models/noodall/form.rb
noodall-form-builder-0.0.7 app/models/noodall/form.rb