class Reporta::Form

Attributes

filter_applied[RW]
filters[RW]
params[RW]

Public Class Methods

new(filters, values={}) click to toggle source
# File lib/reporta/models/form.rb, line 38
def initialize(filters, values={})
  @filters = filters
  @params = ActiveSupport::HashWithIndifferentAccess.new
  self.class.send :attr_accessor, *filters.keys
  self.filter_applied = values.any?
  set_values filters, values
end

Public Instance Methods

filter_applied?() click to toggle source
# File lib/reporta/models/form.rb, line 46
def filter_applied?
  self.filter_applied
end
persisted?() click to toggle source

This method is required so a Form instance can be passed into a form_for helper method

# File lib/reporta/models/form.rb, line 52
def persisted?
  false
end

Private Instance Methods

convert_boolean(value) click to toggle source
# File lib/reporta/models/form.rb, line 68
def convert_boolean(value)
  if value == "0"
    false
  elsif value == "1"
    true
  else
    !!value
  end
end
set_values(filters, values) click to toggle source
# File lib/reporta/models/form.rb, line 58
def set_values(filters, values)
  filters.each do |name, filter|
    value = values[name].present? ? values[name] : filter.default
    value = convert_boolean(values[name]) if filter.boolean?
    @params[name] = value

    self.send "#{name}=", value
  end
end