module ActiveInteractor::ClassMethods
Private Class Methods
i18n_scope()
click to toggle source
@note Override {ActiveModel::Translation::ClassMethods#i18n_scope}
# File lib/active_interactor.rb, line 86 def self.i18n_scope :activeinteractor end
Public Instance Methods
expose(*instance_variable_names)
click to toggle source
Expose local instance variables into the returning value of {#call}
@param instance_variable_names [Array<Symbol>]
# File lib/active_interactor.rb, line 52 def expose(*instance_variable_names) instance_variable_names.each do |name| exposures[name.to_sym] = "@#{name}" end end
exposures()
click to toggle source
@return [Hash]
# File lib/active_interactor.rb, line 59 def exposures @exposures ||= {} end
validation_attribute_names()
click to toggle source
@return [Array<Symbol>]
# File lib/active_interactor.rb, line 64 def validation_attribute_names @validation_attribute_names || [] end
validation_required?()
click to toggle source
@return [Boolean]
# File lib/active_interactor.rb, line 69 def validation_required? validation_attribute_names.present? end
validations(*attribute_names, &block)
click to toggle source
Configure {.validator_class}
@param attribute_names [Array<Symbol>] list of @yield @return [void]
# File lib/active_interactor.rb, line 36 def validations(*attribute_names, &block) @validation_attribute_names = attribute_names validator_class.class_eval do attr_accessor(*attribute_names) end validator_class.class_eval(&block) end
validator_class()
click to toggle source
@return [Class]
# File lib/active_interactor.rb, line 45 def validator_class @validator_class ||= build_validator_class end
Private Instance Methods
build_validator_class()
click to toggle source
@return [Class]
# File lib/active_interactor.rb, line 76 def build_validator_class klass = Class.new do include ActiveModel::AttributeAssignment include ActiveModel::Validations extend ActiveModel::Translation # @note {ActiveModel::Translation} expects anonymous class to implement {.name} cattr_accessor :name # @note Override {ActiveModel::Translation::ClassMethods#i18n_scope} def self.i18n_scope :activeinteractor end end klass.name = name || 'ActiveInteractor' # Fallback for anonymous classes klass end