Module: Statinize::Statinizable::PrependedMethods

Defined in:
lib/statinize/statinizable.rb

Instance Method Summary collapse

Instance Method Details

#attributesObject



49
50
51
52
53
# File 'lib/statinize/statinizable.rb', line 49

def attributes
  @attributes = Hash[
    statinizer.attributes.map { |a| [a.name, public_send(a.name)] }
  ]
end

#initialize(options = {}, *args, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/statinize/statinizable.rb', line 21

def initialize(options = {}, *args, &block)
  symbolized = options.transform_keys(&:to_sym)

  if private_methods(false).include? :initialize
    super(options, *args, &block)
    check_defined!(symbolized)
  else
    statinizer.attributes.each do |attr|
      instance_variable_set("@#{attr.name}", symbolized[attr.arg_name]) if symbolized.key?(attr.arg_name)
    end
  end

  instantiate_defaults

  run_before_callbacks

  define_validation
  validate!
end

#run_before_callbacksObject



45
46
47
# File 'lib/statinize/statinizable.rb', line 45

def run_before_callbacks
  statinizer.run_before_callbacks(self)
end

#statinizerObject



57
58
59
# File 'lib/statinize/statinizable.rb', line 57

def statinizer
  self.class.statinizer
end

#validationObject Also known as: define_validation



41
42
43
# File 'lib/statinize/statinizable.rb', line 41

def validation
  @validation ||= Validation.new(statinizer, self)
end