class PIM::ValidationRuleBuilder

Attributes

attributes[R]
dependent_attributes[R]
disabled_block[R]
name[R]
tags[R]
validation_block[R]

Public Class Methods

build_validation_rule(data_module, name, *attributes, &block) click to toggle source
# File pim.rb, line 8806
def self.build_validation_rule data_module, name, *attributes, &block

  # 'Old' style validation rule
  if not attributes.empty?
    rule = PIM::ValidationRule.new(name, attributes: attributes, &block)
    return rule
  end

  builder = ValidationRuleBuilder.new name
  DataModuleObject.set_data_module(builder, data_module)
  builder.instance_exec(&block) if block
  builder.build

end
new(name) click to toggle source
# File pim.rb, line 8823
def initialize name
  @name = name
end

Public Instance Methods

build() click to toggle source
# File pim.rb, line 8827
def build
  opts = {
    attributes: @attributes,
    dependent_attributes: @dependent_attributes,
    tags: @tags,
    disabled_block: @disabled_block
  }
  validation_rule = PIM::ValidationRule.new(@name, opts, &@validation_block)
  DataModuleObject.set_data_module(validation_rule, data_module)
  validation_rule
end
depend_on(*attributes) click to toggle source
# File pim.rb, line 8848
def depend_on *attributes
  return @dependent_attributes if attributes.empty?
  @dependent_attributes = attributes
end
Also aliased as: depends_on
depends_on(*attributes)
Alias for: depend_on
disable(&disabled_block) click to toggle source
# File pim.rb, line 8858
def disable &disabled_block
  raise "Disabled block already specified" if @disabled_block
  @disabled_block = disabled_block
  @disabled_block
end
validate(&validation_block) click to toggle source
# File pim.rb, line 8864
def validate &validation_block
  raise "Validation block already specified" if @validation_block
  @validation_block = validation_block
  @validation_block
end
validate_attribute(attribute) click to toggle source
# File pim.rb, line 8839
def validate_attribute attribute
  validate_attributes attribute
end
validate_attributes(*attributes) click to toggle source
# File pim.rb, line 8843
def validate_attributes *attributes
  return @attributes if attributes.empty?
  @attributes = attributes
end