Class: RbsConfig::Config::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/rbs_config/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(class_name:, files:) ⇒ Generator

Returns a new instance of Generator.



15
16
17
18
# File 'lib/rbs_config/config.rb', line 15

def initialize(class_name:, files:)
  @class_name = class_name
  @files = files
end

Instance Attribute Details

#class_name ⇒ Object (readonly)

Returns the value of attribute class_name.



13
14
15
# File 'lib/rbs_config/config.rb', line 13

def class_name
  @class_name
end

#files ⇒ Object (readonly)

Returns the value of attribute files.



13
14
15
# File 'lib/rbs_config/config.rb', line 13

def files
  @files
end

Instance Method Details

#generate ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rbs_config/config.rb', line 20

def generate
  config = load_config(files)
  classes = generate_classes(config)
  methods = generate_methods(config)

  format <<~RBS
    module Config
      module Generated
        class #{class_name} < ::Config::Options
          #{classes.join("\n")}
          #{methods.join("\n")}
        end
      end
    end

    #{class_name}: Config::Generated::#{class_name}
  RBS
end