class Challah::Signup

Attributes

errors[R]
provider[RW]
user[RW]

Public Class Methods

model_name() click to toggle source
# File lib/challah/signup.rb, line 71
def self.model_name
  ActiveModel::Name.new(Challah::Signup, Challah, "Signup")
end
new(attributes = {}) click to toggle source
# File lib/challah/signup.rb, line 9
def initialize(attributes = {})
  self.user = Challah.user.new
  self.provider = :password
  self.attributes = attributes
  @errors = []
end

Public Instance Methods

attributes=(value) click to toggle source
# File lib/challah/signup.rb, line 16
def attributes=(value)
  return unless Hash === value

  value.each do |key, value|
    self.send("#{key}=", value)
  end
end
method_missing(method, *attrs) click to toggle source
# File lib/challah/signup.rb, line 24
def method_missing(method, *attrs)
  user.send(method, *attrs)
end
password=(value) click to toggle source
# File lib/challah/signup.rb, line 28
def password=(value)
  @provider = :password unless value.to_s.blank?
  user.password = value
end
provider=(value) click to toggle source
# File lib/challah/signup.rb, line 37
def provider=(value)
  if value.respond_to?(:to_sym)
    @provider = value.to_sym
  else
    @provider = nil
  end
end
save() click to toggle source
# File lib/challah/signup.rb, line 45
def save
  if valid?
    user.save
  else
    false
  end
end
valid?() click to toggle source
# File lib/challah/signup.rb, line 53
def valid?
  @errors = ActiveModel::Errors.new(user)

  result = true

  unless user.valid?
    result = false
    user.errors.each { |a, e| @errors.add(a, e) }
  end

  if !provider or !valid_provider?
    result = false
    user.errors.each { |a, e| @errors.add(a, e) unless @errors.added?(a, e) }
  end

  result
end
valid_provider?() click to toggle source
# File lib/challah/signup.rb, line 33
def valid_provider?
  user.valid_provider?(provider)
end