Module: Suma::ExpressSchema::Type

Defined in:
lib/suma/express_schema.rb

Constant Summary collapse

RESOURCE =
:resource
MODULE_ARM =
:module_arm
MODULE_MIM =
:module_mim
BUSINESS_OBJECT_MODEL =
:business_object_model
CORE_MODEL =
:core_model
STANDALONE =
:standalone
ID_SUFFIXES =
{
  "_arm" => :MODULE_ARM,
  "_mim" => :MODULE_MIM,
  "_bom" => :BUSINESS_OBJECT_MODEL,
}.freeze
PATH_SEGMENTS =
{
  "/resources/" => :RESOURCE,
  "/modules/" => :MODULE_ARM,
  "/core_model/" => :CORE_MODEL,
}.freeze

Class Method Summary collapse

Class Method Details

.classify(id:, path:) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/suma/express_schema.rb', line 29

def self.classify(id:, path:)
  name = id&.downcase || ""

  ID_SUFFIXES.each do |suffix, type|
    return const_get(type) if name.end_with?(suffix)
  end

  path_str = path.to_s
  PATH_SEGMENTS.each do |segment, type|
    return const_get(type) if path_str.include?(segment)
  end

  STANDALONE
end