module HasCalculatedFields::HasCalculatedFields

Public Instance Methods

_has_calculated_fields__default_field_value(data) click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 245
def _has_calculated_fields__default_field_value(data)
  value = data.fetch(:default, nil)
  case value
  when :now
    Time.current
  when :nil
    nil
  else
    value
  end
end
_has_calculated_fields__field_value(data) click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 236
def _has_calculated_fields__field_value(data)
  field = data.fetch(:field, nil)
  if field.present?
    send(field) || _has_calculated_fields__default_field_value(data)
  else
    _has_calculated_fields__default_field_value(data)
  end
end
_has_calculated_fields__on_after_commit() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 197
def _has_calculated_fields__on_after_commit
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_commit)

  has_calculated_fields_options[:on_after_commit].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_after_create() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 164
def _has_calculated_fields__on_after_create
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_create)

  has_calculated_fields_options[:on_after_create].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_after_destroy() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 186
def _has_calculated_fields__on_after_destroy
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_destroy)

  has_calculated_fields_options[:on_after_destroy].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_after_save() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 54
def _has_calculated_fields__on_after_save
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_save)

  has_calculated_fields_options[:on_after_save].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_after_update() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 175
def _has_calculated_fields__on_after_update
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_update)

  has_calculated_fields_options[:on_after_update].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_after_validation() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 76
def _has_calculated_fields__on_after_validation
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_after_validation)

  has_calculated_fields_options[:on_after_validation].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_around_create() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 142
def _has_calculated_fields__on_around_create
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_around_create)

  has_calculated_fields_options[:on_around_create].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_around_destroy() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 153
def _has_calculated_fields__on_around_destroy
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_around_destroy)

  has_calculated_fields_options[:on_around_destroy].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_around_save() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 120
def _has_calculated_fields__on_around_save
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_around_save)

  has_calculated_fields_options[:on_around_save].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_around_update() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 131
def _has_calculated_fields__on_around_update
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_around_update)

  has_calculated_fields_options[:on_around_update].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_before_create() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 98
def _has_calculated_fields__on_before_create
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_before_create)

  has_calculated_fields_options[:on_before_create].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_before_destroy() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 109
def _has_calculated_fields__on_before_destroy
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_before_destroy)

  has_calculated_fields_options[:on_before_destroy].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_before_save() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 43
def _has_calculated_fields__on_before_save
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_before_save)

  has_calculated_fields_options[:on_before_save].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_before_update() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 87
def _has_calculated_fields__on_before_update
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_before_update)

  has_calculated_fields_options[:on_before_update].each do |data|
    _process_data(data)
  end

  true
end
_has_calculated_fields__on_before_validation() click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 65
def _has_calculated_fields__on_before_validation
  return true unless respond_to?(:has_calculated_fields_options)
  return true unless has_calculated_fields_options.has_key?(:on_before_validation)

  has_calculated_fields_options[:on_before_validation].each do |data|
    _process_data(data)
  end

  true
end
_process_data(data) click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 208
def _process_data(data)
  attr_equal = "#{data[:calculated_field]}="

  value = case data[:type]
          when :date
            _process_date(data)
          when :method
            _process_method(data)
  end

  send(attr_equal, value)
end
_process_date(data) click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 221
def _process_date(data)
  value = _has_calculated_fields__field_value(data)
  return "" if value.blank?

  if data[:format]
    I18n.l(value, format: data[:format])
  else
    I18n.l(value)
  end
end
_process_method(data) click to toggle source
# File lib/has_calculated_fields/has_calculated_fields.rb, line 232
def _process_method(data)
  data[:method].call(self)
end