Sha256: 80ed5a2827d8e150b659c0d3a2206d311002bee2d30fe9b24ba478bdcbc03436

Contents?: true

Size: 1.19 KB

Versions: 30

Compression:

Stored size: 1.19 KB

Contents

class ReportTemplate < ActiveRecord::Base

  attr_accessor :report_builder_instance

  has_paper_trail

  #
  # RELATIONS
  #
  belongs_to :user
  has_many :reports, :dependent => :destroy

  #
  # VALIDATIONS
  #
  validates :title, :presence => true

  #
  # MODIFCIATIONS
  #
  serialize :groupping
  serialize :fields
  serialize :calculations
  serialize :conditions

  #
  # METHODS
  #
  def report_builder(report=nil)
    return report_builder_instance unless report_builder_instance.nil?

    report_builder_instance = ReportBuilder.constantize(kind)
    report_builder_instance = report_builder_instance.new(report) if report_builder_instance

    return report_builder_instance
  end

  def respond_to?(key, include_private=false)
    return true if key.to_s.starts_with?('condition_')
    super(key, include_private)
  end

  def method_missing(name, *args, &block)
    return super unless name.to_s.starts_with?('condition_')

    self.conditions ||= {}
    name = name.to_s.gsub('condition_', '')

    if name[-1] == '='
      name = name[0, name.length-1]
      self.conditions[name] = (args[0].is_a?(Array) ? args[0].select{|x| !x.blank?} : args[0])
    else
      self.conditions[name]
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
smartkiosk-server-0.11.6 app/models/report_template.rb
smartkiosk-server-0.11.5 app/models/report_template.rb
smartkiosk-server-0.11.4 app/models/report_template.rb
smartkiosk-server-0.11.3 app/models/report_template.rb
smartkiosk-server-0.11.2 app/models/report_template.rb
smartkiosk-server-0.11.1 app/models/report_template.rb
smartkiosk-server-0.11 app/models/report_template.rb
smartkiosk-server-0.10.19 app/models/report_template.rb
smartkiosk-server-0.10.18 app/models/report_template.rb
smartkiosk-server-0.10.17 app/models/report_template.rb
smartkiosk-server-0.10.16 app/models/report_template.rb
smartkiosk-server-0.10.15 app/models/report_template.rb
smartkiosk-server-0.10.14 app/models/report_template.rb
smartkiosk-server-0.10.13 app/models/report_template.rb
smartkiosk-server-0.10.12 app/models/report_template.rb
smartkiosk-server-0.10.11 app/models/report_template.rb
smartkiosk-server-0.10.10 app/models/report_template.rb
smartkiosk-server-0.10.9 app/models/report_template.rb
smartkiosk-server-0.10.8 app/models/report_template.rb
smartkiosk-server-0.10.7 app/models/report_template.rb