Module: Tama::Perception

Defined in:
lib/tama/perception/chain.rb,
lib/tama/perception/concept.rb,
lib/tama/perception/service.rb,
lib/tama/perception/generator.rb

Defined Under Namespace

Classes: Service

Constant Summary collapse

Chain =
Model.define(
  :id, :space_id, :name, :slug, :provision_state,
  required: %i[name provision_state],
  types: {id: String, space_id: String, name: String, slug: String, provision_state: String}
)
Concept =
Model.define(
  :id, :relation, :content, :generator,
  required: %i[id relation content],
  types: {id: String, relation: String, content: Hash, generator: Generator},
  transforms: {generator: ->(value) { Generator.parse(value) }}
)
Generator =
Model.define(
  :type, :reference, :parameters,
  required: %i[type reference parameters],
  types: {type: Symbol, reference: String, parameters: Hash},
  transforms: {
    type: lambda do |value|
      type = value.to_sym
      raise Error::ValidationError, "generator type must be model or module" unless %i[model module].include?(type)

      type
    end
  }
)