Class: EditorialMember

Inherits:
ApplicationRecord show all
Includes:
FlatPriority, HasOwner, Toggleable
Defined in:
app/models/editorial_member.rb

Overview

Editorial member

Attributes:

about [Text], optional
created_at [DateTime]
user_id [User]
visible [Boolean]
priority [Integer]
updated_at [DateTime]
title [String], optional
lead [String], optional

Constant Summary collapse

LEAD_LIMIT =
170
TITLE_LIMIT =
150

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](user) ⇒ Object

Parameters:

  • user (String|User)


54
55
56
57
58
59
# File 'app/models/editorial_member.rb', line 54

def self.[](user)
  criteria = {
    user: user.is_a?(User) ? user : User.find_by(slug: user)
  }
  find_by(criteria)
end

.creation_parametersObject



44
45
46
# File 'app/models/editorial_member.rb', line 44

def self.creation_parameters
  entity_parameters + %i[user_id]
end

.entity_parametersObject



40
41
42
# File 'app/models/editorial_member.rb', line 40

def self.entity_parameters
  %i[about lead title visible]
end

.user?(user) ⇒ Boolean

Parameters:

  • user (User)

Returns:

  • (Boolean)


49
50
51
# File 'app/models/editorial_member.rb', line 49

def self.user?(user)
  user.is_a?(self) || owned_by(user).visible.exists?
end

Instance Method Details

#add_post_type(post_type) ⇒ Object

Parameters:



93
94
95
# File 'app/models/editorial_member.rb', line 93

def add_post_type(post_type)
  editorial_member_post_types.create(post_type: post_type)
end

#editable_by?(user) ⇒ Boolean

Deprecated.

use component handler

Parameters:

  • user (User)

Returns:

  • (Boolean)


83
84
85
# File 'app/models/editorial_member.rb', line 83

def editable_by?(user)
  Biovision::Components::BaseComponent.handler('posts', user).editable?(self)
end

#nameObject



61
62
63
# File 'app/models/editorial_member.rb', line 61

def name
  user.profile_name
end

#post_countObject



77
78
79
# File 'app/models/editorial_member.rb', line 77

def post_count
  Post.owned_by(user).count
end

#post_type?(post_type) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


88
89
90
# File 'app/models/editorial_member.rb', line 88

def post_type?(post_type)
  editorial_member_post_types.where(post_type: post_type).exists?
end

#profile_nameObject



65
66
67
# File 'app/models/editorial_member.rb', line 65

def profile_name
  user.profile_name
end

#remove_post_type(post_type) ⇒ Object

Parameters:



98
99
100
# File 'app/models/editorial_member.rb', line 98

def remove_post_type(post_type)
  editorial_member_post_types.where(post_type: post_type).delete_all
end

#screen_nameObject



69
70
71
# File 'app/models/editorial_member.rb', line 69

def screen_name
  user.screen_name
end

#slugObject



73
74
75
# File 'app/models/editorial_member.rb', line 73

def slug
  user.slug
end