Sha256: 293f2d1ca7330d7024b173afd1ec2e132e7cd6c7fb7d588e06287845c04180ff

Contents?: true

Size: 984 Bytes

Versions: 1

Compression:

Stored size: 984 Bytes

Contents

#
# Blogaze
# Copyright (C) 2011-2013 Jack Polgar
#
# Blogaze is released under the BSD 3-clause license.
# @license http://opensource.org/licenses/BSD-3-Clause
#

module Blogaze
  class User < Sequel::Model
    plugin :validation_helpers

    one_to_many :post
    many_to_one :group

    def validate
      super

      # Username
      validates_unique :username
      validates_min_length 4, :username, :message => 'must be at least 4 characters' if new?
      validates_presence :username, :message => 'can\'t be empty'

      # Password
      validates_presence :password, :message => 'cant be blank'
      validates_min_length 6, :password, :message => 'must be at least 6 characters'

      # Email
      validates_unique :email
      validates_format /(.*)@(.*)\.(.*)/, :email, :message => 'is not a valid email'
    end

    def before_create
      self.password = Digest::SHA1.hexdigest(self.password)
      self.group_id = 3
    end

    def before_save
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blogaze-0.0.1 lib/blogaze/model/user.rb