Sha256: a6cfe160ccddaf87a74a9085a7fbabc9cd6b96b6c133b7cfa14f12c782139b4f

Contents?: true

Size: 716 Bytes

Versions: 18

Compression:

Stored size: 716 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

18 entries across 18 versions & 1 rubygems

Version Path
activeadmin-3.3.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.5 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.4 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.3 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.2 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.1 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.2.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.1.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-3.0.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.14.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.13.1 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.13.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.12.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.11.2 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.11.1 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.11.0 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.10.1 lib/active_admin/dynamic_settings_node.rb
activeadmin-2.10.0 lib/active_admin/dynamic_settings_node.rb