summaryrefslogtreecommitdiff
path: root/lib/irb/helper_method.rb
blob: f1f6fff915bf2273a3225a6b5b59c78c03f4ee4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require_relative "helper_method/base"

module IRB
  module HelperMethod
    @helper_methods = {}

    class << self
      attr_reader :helper_methods

      def register(name, helper_class)
        @helper_methods[name] = helper_class

        if defined?(HelpersContainer)
          HelpersContainer.install_helper_methods
        end
      end

      def all_helper_methods_info
        @helper_methods.map do |name, helper_class|
          { display_name: name, description: helper_class.description }
        end
      end
    end

    # Default helper_methods
    require_relative "helper_method/conf"
    register(:conf, HelperMethod::Conf)
  end
end