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