Sha256: 1cb3d17d3565c6d4b98d1af0d2097b88fe41a2a66f70f20eb476e322b0315a62

Contents?: true

Size: 1.38 KB

Versions: 2

Compression:

Stored size: 1.38 KB

Contents

class SpudInquiry < ActiveRecord::Base

	has_many :spud_inquiry_fields, :dependent => :destroy
	belongs_to :spud_inquiry_form
  accepts_nested_attributes_for :spud_inquiry_fields, :reject_if => lambda { |a| a[:name].blank? }

  def email
    email_field_names = ['email', 'email_address', 'email address', 'emailaddress', 'e-mail']
    email_field = self.spud_inquiry_fields.load.find do |field|
      email_field_names.include?(field.name.downcase)
    end
    if !email_field.blank?
      return email_field.value
    end
    return "Unknown Sender"
  end

  def build_inquiry_form_fields()
    if self.spud_inquiry_form
      self.spud_inquiry_form.spud_inquiry_form_fields.order(:field_order).each do |field|
        self.spud_inquiry_fields.new(:name => field.name, :field_name => field.field_name)
      end
    end
  end

  # If a property is not defined here we want to check the dynamic fields list
  def method_missing(sym, *args)
    inquiry_field = self.spud_inquiry_fields.select{ |field| field.field_name == sym.to_s}
    if inquiry_field.any?
      return inquiry_field[0].value
    end
    super
  end

  def respond_to?(sym, include_all=false)
    default_responds = super
    if !default_responds
      inquiry_field = self.spud_inquiry_fields.select{ |field| field.field_name == sym.to_s}
      if inquiry_field.any?
        return true
      end
    end
    return default_responds
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tb_inquiries-1.0.1 app/models/spud_inquiry.rb
tb_inquiries-1.0.0 app/models/spud_inquiry.rb