Class: Generator::RBS::Entrypoint

Inherits:
Object
  • Object
show all
Includes:
FileWriter
Defined in:
lib/generator/rbs/entrypoint.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from FileWriter

#format_files, #write_file

Constructor Details

#initialize(apis) ⇒ Entrypoint

Returns a new instance of Entrypoint.



15
16
17
# File 'lib/generator/rbs/entrypoint.rb', line 15

def initialize(apis)
  @apis = apis
end

Instance Attribute Details

#apisObject (readonly)

Returns the value of attribute apis.



13
14
15
# File 'lib/generator/rbs/entrypoint.rb', line 13

def apis
  @apis
end

Instance Method Details

#api_methodsObject



23
24
25
26
27
28
29
30
# File 'lib/generator/rbs/entrypoint.rb', line 23

def api_methods
  apis.map do |api|
    {
      name: api.name_with_version,
      class_name: api.class_name,
    }
  end.sort_by { |api| api[:name] }
end

#apis_with_latest_versionObject



32
33
34
35
36
37
# File 'lib/generator/rbs/entrypoint.rb', line 32

def apis_with_latest_version
  apis.group_by(&:name).transform_values do |api_list|
    latest_version = VersionSelector.find_latest_version(api_list.map(&:version))
    api_list.find { |api| api.version == latest_version }
  end.sort.to_h
end

#generateObject



19
20
21
# File 'lib/generator/rbs/entrypoint.rb', line 19

def generate
  write_file(file_path, render_template)
end