Completed
Push — master ( 571969...26824a )
by Marcelo
03:24
created

CommandBuilder.inject_command_into_class()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 8
rs 9.4286
cc 1
1
module Carrasco
2
  class CommandBuilder
3
    def from_config(config)
4
      klass = Class.new(Thor)
5
6
      config['commands'].each do |method, options|
7
        command = Command.new(method, options)
8
        inject_command_into_class(command, klass)
9
      end
10
11
      klass
12
    end
13
14
    def inject_command_into_class(command, klass)
15
      klass.desc(command.help, command.description)
16
      klass.class_eval do
17
        define_method(command.command_name) do
18
          execute_command(command)
19
        end
20
      end
21
    end
22
  end
23
end
24