Class: ApiMaker::ModelClassesJavaScriptGeneratorService

Inherits:
ApplicationService
  • Object
show all
Defined in:
app/services/api_maker/model_classes_java_script_generator_service.rb

Instance Method Summary collapse

Methods inherited from ApplicationService

#api_maker_json

Instance Method Details

#ignore_model?(model) ⇒ Boolean

Returns:



21
22
23
# File 'app/services/api_maker/model_classes_java_script_generator_service.rb', line 21

def ignore_model?(model)
  model.name.end_with?("::Translation", "::ApplicationRecord")
end

#model_file(model) ⇒ Object



29
30
31
32
# File 'app/services/api_maker/model_classes_java_script_generator_service.rb', line 29

def model_file(model)
  resource_class = ApiMaker::MemoryStorage.current.resource_for_model(model)
  api_maker_root_path.join("models", "#{resource_class.short_name.underscore.dasherize}.js")
end

#modelsObject



25
26
27
# File 'app/services/api_maker/model_classes_java_script_generator_service.rb', line 25

def models
  @models ||= ApiMaker::ModelsFinderService.execute!
end

#performObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/services/api_maker/model_classes_java_script_generator_service.rb', line 2

def perform
  javascript_code = ""
  resource_names = []

  models.each do |model|
    next if ignore_model?(model)

    javascript_code << ApiMaker::ModelContentGeneratorService.execute!(model: model)
    javascript_code << "\n\n"

    resource = resource_for_model(model)
    resource_names << resource.short_name
  end

  javascript_code << "export {#{resource_names.sort.join(", ")}}\n"

  succeed! javascript_code
end

#resource_for_model(model) ⇒ Object



34
35
36
# File 'app/services/api_maker/model_classes_java_script_generator_service.rb', line 34

def resource_for_model(model)
  ApiMaker::MemoryStorage.current.resource_for_model(model)
end