class Deadlift::Base
Attributes
barbell[R]
Public Class Methods
barbell(params = {})
click to toggle source
# File lib/deadlift/base.rb, line 5 def self.barbell(params = {}) Deadlift::Barbell::Default.new(params) end
default_trainers(*trainers)
click to toggle source
# File lib/deadlift/base.rb, line 22 def self.default_trainers(*trainers) @default_trainers = trainers end
get_default_trainers()
click to toggle source
# File lib/deadlift/base.rb, line 18 def self.get_default_trainers Array(@default_trainers) end
new(params)
click to toggle source
# File lib/deadlift/base.rb, line 26 def initialize(params) klass = self.class @params = params @barbell = klass.barbell(@params) klass.get_default_trainers.each{|trainer| add_trainer(trainer)} end
validate(*messages)
click to toggle source
# File lib/deadlift/base.rb, line 9 def self.validate(*messages) @validations ||= [] validations.concat messages end
validations()
click to toggle source
# File lib/deadlift/base.rb, line 14 def self.validations @validations end
Public Instance Methods
add_trainer(*trainers)
click to toggle source
# File lib/deadlift/base.rb, line 33 def add_trainer(*trainers) self.trainers.concat trainers self end
barbell_approved?()
click to toggle source
# File lib/deadlift/base.rb, line 65 def barbell_approved? return false unless barbell.approved? Array(self.class.validations).each do |message| self.send message end Array(barbell.errors).empty? end
interaction()
click to toggle source
# File lib/deadlift/base.rb, line 82 def interaction self.class.name.demodulize.underscore.to_sym end
perform_and_report_for_valid() { || ... }
click to toggle source
# File lib/deadlift/base.rb, line 38 def perform_and_report_for_valid(&block) if barbell_approved? yield report :success else report :failure end end
performance()
click to toggle source
# File lib/deadlift/base.rb, line 73 def performance @performance ||= Deadlift::Performance.new(barbell, result, interaction) end
report(type)
click to toggle source
# File lib/deadlift/base.rb, line 51 def report(type) trainers.each do |trainer| trainer.public_send("#{type}", performance) end nil end
report_progress(performance)
click to toggle source
# File lib/deadlift/base.rb, line 58 def report_progress(performance) trainers.each do |trainer| trainer.public_send(:progress, performance) end nil end
result()
click to toggle source
Override if needed
# File lib/deadlift/base.rb, line 78 def result NullResult.new end
trainers()
click to toggle source
# File lib/deadlift/base.rb, line 47 def trainers @trainers ||= [] end