Class: Funes::EventMetainformationBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/funes/event_metainformation_builder.rb

Overview

Builder class that collects validation definitions for EventMetainformation using a block-based DSL.

Examples:

Funes.configure do |config|
  config.event_metainformation_attributes = [:user_id, :action]

  config.event_metainformation_validations do
    validates :user_id, presence: true
    validates :action, format: { with: /\A\w+#\w+\z/ }
  end
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEventMetainformationBuilder

Returns a new instance of EventMetainformationBuilder.



18
19
20
# File 'lib/funes/event_metainformation_builder.rb', line 18

def initialize
  @validations = []
end

Instance Attribute Details

#validationsObject (readonly)

Returns the value of attribute validations.



16
17
18
# File 'lib/funes/event_metainformation_builder.rb', line 16

def validations
  @validations
end

Instance Method Details

#evaluate { ... } ⇒ self

Evaluate a block in the context of this builder.

Yields:

  • Block containing validates calls

Returns:

  • (self)


49
50
51
52
# File 'lib/funes/event_metainformation_builder.rb', line 49

def evaluate(&block)
  instance_eval(&block)
  self
end

#validates(*args, **options) ⇒ void

This method returns an undefined value.

Define a validation on EventMetainformation.

Supports all standard ActiveModel validators:

  • presence

  • format

  • length

  • numericality

  • inclusion

  • exclusion

  • custom validators

Examples:

validates :user_id, presence: true
validates :action, format: { with: /\A\w+#\w+\z/ }
validates :code, presence: true, length: { minimum: 3 }

Parameters:

  • args (Array)

    Attribute name(s) and options

  • options (Hash)

    Validation options passed to ActiveModel::Validations



41
42
43
# File 'lib/funes/event_metainformation_builder.rb', line 41

def validates(*args, **options)
  @validations << [ args, options ]
end