Sha256: 0d20418bb09f54c34264879f27f2648302af24657318a5bf4206f035ecc45edc

Contents?: true

Size: 1 KB

Versions: 31

Compression:

Stored size: 1 KB

Contents

require 'fixtures/models/simple_roles'

class User
  attr_accessor :name, :account, :email

  # tango_user # see macros

  include ::SimpleRoles

  def initialize name, email = nil, options = {}
    @name = name
    @email = email
    set_option_vars options
  end

  def set_option_vars options = {}
    options.each_pair do |name, value|
      var = :"@#{name}"
      self.instance_variable_set(var, value)
    end
  end

  def email
    @email ||= 'default@gmail.com'
  end

  def role
    @role || ''
  end

  # This hash should be recalculated anytime the permissions collection changes
  #

  # after_update :recalculate_permissions_hash

  def permissions_hash
    @permissions_hash = permissions.hash
  end

  def permissions
    @permissions ||= []
  end

  # allows implementation specific to ORM, fx using #all on some datastores such as Mongoid etc.
  alias_method :all_permissions, :permissions

  protected

  def recalculate_permissions_hash
    @permissions_hash = nil if self.permissions_changed?
  end
end

Version data entries

31 entries across 31 versions & 4 rubygems

Version Path
cantango-config-0.2.1 spec/fixtures/models/user.rb
cantango-config-0.2.0 spec/fixtures/models/user.rb
cantango-api-0.1.3 spec/fixtures/models/user.rb
cantango-api-0.1.2 spec/fixtures/models/user.rb
cantango-api-0.1.1 spec/fixtures/models/user.rb
cantango-masquerade-0.1.3.2 spec/fixtures/models/user.rb
cantango-masquerade-0.1.3.1 spec/fixtures/models/user.rb
cantango-masquerade-0.1.3 spec/fixtures/models/user.rb
cantango-masquerade-0.1.2.1 spec/fixtures/models/user.rb
cantango-masquerade-0.1.2 spec/fixtures/models/user.rb
cantango-masquerade-0.1.1 spec/fixtures/models/user.rb
cantango-api-0.1.0 spec/fixtures/models/user.rb
cantango-config-0.1.9.2 spec/fixtures/models/user.rb
cantango-config-0.1.8.1 spec/fixtures/models/user.rb
cantango-config-0.1.8 spec/fixtures/models/user.rb
cantango-config-0.1.7 spec/fixtures/models/user.rb
cantango-config-0.1.6 spec/fixtures/models/user.rb
cantango-config-0.1.5 spec/fixtures/models/user.rb
cantango-config-0.1.4 spec/fixtures/models/user.rb
cantango-config-0.1.3 spec/fixtures/models/user.rb