Class: Arkaan::Rulesets::Blueprint

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Timestamps
Defined in:
lib/arkaan/rulesets/blueprint.rb

Overview

A blueprint defines what a type of entity contains.

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#_fieldsArray<Arkaan::Rulesets::Field>

Returns the field composing the attributes of this blueprint.

Returns:



18
# File 'lib/arkaan/rulesets/blueprint.rb', line 18

embeds_many :_fields, class_name: 'Arkaan::Rulesets::Field', inverse_of: :blueprint

#nameString

Returns the name of this type of entity in the ruleset.

Returns:

  • (String)

    the name of this type of entity in the ruleset.



11
# File 'lib/arkaan/rulesets/blueprint.rb', line 11

field :name, type: String

#rulesetArkaan::Ruleset

Returns the ruleset to which this blueprint belongs.

Returns:



15
# File 'lib/arkaan/rulesets/blueprint.rb', line 15

belongs_to :ruleset, class_name: 'Arkaan::Ruleset', inverse_of: :blueprints

Instance Method Details

#name_unicityObject



26
27
28
29
30
31
# File 'lib/arkaan/rulesets/blueprint.rb', line 26

def name_unicity
  has_duplicate = ruleset.blueprints.where(:_id.ne => _id, name: name).exists?
  if !ruleset.nil? && name? && has_duplicate
    errors.add(:name, 'uniq')
  end
end