module ActiveAdminAddons::InputOptionsHandler

Public Instance Methods

attr_options() click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 23
def attr_options
  @attr_options || {}
end
control_attributes() click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 3
def control_attributes
  result = {}
  result[:class] = css_classes.compact.join(" ") if css_classes.any?

  data_attr_options.each do |attribute, item|
    result[:data] ||= {}
    result[:data][attribute] = formatted_option_value(item)
  end

  attr_options.each do |attribute, item|
    result[attribute] = formatted_option_value(item)
  end

  result
end
css_classes() click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 27
def css_classes
  @css_classes || []
end
data_attr_options() click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 19
def data_attr_options
  @data_attr_options || {}
end
get_data_attr_value(attr_name) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 49
def get_data_attr_value(attr_name)
  item = data_attr_options[attr_name.to_sym]
  return unless item
  item[:value]
end
load_attr(attr_name, options = {}) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 36
def load_attr(attr_name, options = {})
  @attr_options ||= {}
  @attr_options[attr_name.to_sym] = load_option_attr(attr_name, options)
end
load_class(class_attr) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 41
def load_class(class_attr)
  @css_classes ||= []
  return if class_attr.blank?
  class_attr = class_attr.strip
  @css_classes << class_attr
  class_attr
end
load_data_attr(attr_name, options = {}) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 31
def load_data_attr(attr_name, options = {})
  @data_attr_options ||= {}
  @data_attr_options[attr_name.to_sym] = load_option_attr(attr_name, options)
end

Private Instance Methods

calculate_attr_value(attr_name, attr_options) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 69
def calculate_attr_value(attr_name, attr_options)
  value = attr_options[:value] || @options[attr_name]

  if !empty_value?(value)
    if value.is_a?(Proc)
      return template.instance_eval(&value)
    else
      return value
    end
  end

  default_value = attr_options[:default]
  return unless default_value
  return default_value.call if default_value.is_a?(Proc)
  default_value
end
empty_value?(value) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 86
def empty_value?(value)
  value.nil? || value == ""
end
formatted_option_value(item) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 57
def formatted_option_value(item)
  return item[:value].send(item[:formatter]) if item[:formatter]
  item[:value]
end
load_option_attr(attr_name, options) click to toggle source
# File lib/activeadmin_addons/support/input_helpers/input_options_handler.rb, line 62
def load_option_attr(attr_name, options)
  value = calculate_attr_value(attr_name, options)
  item = { value: value }
  item[:formatter] = options[:formatter] unless options[:formatter].blank?
  item
end