Sha256: 5f703dca684c616b4fa9781576ca3678128368f9d4a00aa95fb5bb4435c0bd26

Contents?: true

Size: 720 Bytes

Versions: 12

Compression:

Stored size: 720 Bytes

Contents

# frozen_string_literal: true
require "active_admin/dynamic_setting"
require "active_admin/settings_node"

module ActiveAdmin

  class DynamicSettingsNode < SettingsNode
    class << self
      def register(name, value, type = nil)
        class_attribute "#{name}_setting"
        add_reader(name)
        add_writer(name, type)
        send :"#{name}=", value
      end

      def add_reader(name)
        define_singleton_method(name) do |*args|
          send(:"#{name}_setting").value(*args)
        end
      end

      def add_writer(name, type)
        define_singleton_method(:"#{name}=") do |value|
          send(:"#{name}_setting=", DynamicSetting.build(value, type))
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
activeadmin-4.0.0.beta12 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta11 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta10 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta9 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta8 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta7 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta6 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta5 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta4 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta3 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta2 lib/active_admin/dynamic_settings_node.rb
activeadmin-4.0.0.beta1 lib/active_admin/dynamic_settings_node.rb