thredded 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- metadata +7 -114
- data/MIT-LICENSE +0 -20
- data/README.mkdn +0 -72
- data/Rakefile +0 -31
- data/app/assets/javascripts/thredded/application.js +0 -15
- data/app/assets/stylesheets/thredded/application.css +0 -13
- data/app/controllers/thredded/application_controller.rb +0 -60
- data/app/controllers/thredded/emails_controller.rb +0 -4
- data/app/controllers/thredded/messageboards_controller.rb +0 -7
- data/app/controllers/thredded/posts_controller.rb +0 -85
- data/app/controllers/thredded/preferences_controller.rb +0 -28
- data/app/controllers/thredded/private_topics_controller.rb +0 -58
- data/app/controllers/thredded/setups_controller.rb +0 -44
- data/app/controllers/thredded/topics_controller.rb +0 -99
- data/app/decorators/thredded/messageboard_decorator.rb +0 -74
- data/app/decorators/thredded/post_decorator.rb +0 -61
- data/app/decorators/thredded/topic_decorator.rb +0 -94
- data/app/decorators/thredded/user_topic_decorator.rb +0 -88
- data/app/helpers/thredded/application_helper.rb +0 -4
- data/app/helpers/thredded/posts_helper.rb +0 -7
- data/app/helpers/thredded/topics_helper.rb +0 -4
- data/app/mailers/thredded/post_mailer.rb +0 -28
- data/app/mailers/thredded/topic_mailer.rb +0 -29
- data/app/models/thredded/ability.rb +0 -66
- data/app/models/thredded/attachment.rb +0 -23
- data/app/models/thredded/category.rb +0 -9
- data/app/models/thredded/image.rb +0 -26
- data/app/models/thredded/messageboard.rb +0 -117
- data/app/models/thredded/messageboard_preference.rb +0 -14
- data/app/models/thredded/null_preference.rb +0 -11
- data/app/models/thredded/null_topic.rb +0 -16
- data/app/models/thredded/null_topic_read.rb +0 -19
- data/app/models/thredded/null_user.rb +0 -35
- data/app/models/thredded/post.rb +0 -120
- data/app/models/thredded/post_notification.rb +0 -5
- data/app/models/thredded/private_topic.rb +0 -42
- data/app/models/thredded/private_user.rb +0 -6
- data/app/models/thredded/role.rb +0 -16
- data/app/models/thredded/topic.rb +0 -154
- data/app/models/thredded/topic_category.rb +0 -6
- data/app/models/thredded/user_detail.rb +0 -6
- data/app/models/thredded/user_extender.rb +0 -21
- data/app/models/thredded/user_preference.rb +0 -6
- data/app/models/thredded/user_topic_read.rb +0 -9
- data/app/uploaders/thredded/attachment_uploader.rb +0 -30
- data/app/uploaders/thredded/image_uploader.rb +0 -16
- data/app/views/thredded/attachments/_attachment.html.erb +0 -7
- data/app/views/thredded/messageboards/_messageboard.html.erb +0 -20
- data/app/views/thredded/messageboards/index.html.erb +0 -18
- data/app/views/thredded/post_mailer/at_notification.html.erb +0 -17
- data/app/views/thredded/post_mailer/at_notification.text.erb +0 -13
- data/app/views/thredded/posts/_form.html.erb +0 -17
- data/app/views/thredded/posts/_null_user.html.erb +0 -0
- data/app/views/thredded/posts/_post.html.erb +0 -29
- data/app/views/thredded/posts/_user.html.erb +0 -7
- data/app/views/thredded/posts/edit.html.erb +0 -31
- data/app/views/thredded/posts/index.html.erb +0 -64
- data/app/views/thredded/preferences/edit.html.erb +0 -22
- data/app/views/thredded/private_topics/_form.html.erb +0 -15
- data/app/views/thredded/private_topics/index.html.erb +0 -34
- data/app/views/thredded/private_topics/new.html.erb +0 -28
- data/app/views/thredded/search/_form.html.erb +0 -9
- data/app/views/thredded/setups/_form.html.erb +0 -35
- data/app/views/thredded/setups/new.html.erb +0 -6
- data/app/views/thredded/shared/_currently_online.html.erb +0 -10
- data/app/views/thredded/shared/_error_msgs.html.erb +0 -7
- data/app/views/thredded/shared/_google_analytics.html.erb +0 -10
- data/app/views/thredded/shared/_topic_nav.html.erb +0 -21
- data/app/views/thredded/topic_mailer/message_notification.html.erb +0 -17
- data/app/views/thredded/topic_mailer/message_notification.text.erb +0 -13
- data/app/views/thredded/topics/_form.html.erb +0 -6
- data/app/views/thredded/topics/_recent_topics_by_user.html.erb +0 -8
- data/app/views/thredded/topics/_topic_condensed.html.erb +0 -24
- data/app/views/thredded/topics/_topic_form.html.erb +0 -27
- data/app/views/thredded/topics/by_category.html.erb +0 -54
- data/app/views/thredded/topics/edit.html.erb +0 -28
- data/app/views/thredded/topics/index.html.erb +0 -34
- data/app/views/thredded/topics/menu/_new_topic.html.erb +0 -3
- data/app/views/thredded/topics/new.html.erb +0 -21
- data/app/views/thredded/topics/search.html.erb +0 -34
- data/config/initializers/griddler.rb +0 -4
- data/config/routes.rb +0 -29
- data/db/migrate/20130425230852_create_thredded_tables.rb +0 -143
- data/db/migrate/20131005032727_prevent_null_sticky_and_locked.rb +0 -15
- data/db/migrate/20131014014258_uniqs_on_user_topic_read.rb +0 -9
- data/db/migrate/20131019014258_index_necessary_columns.rb +0 -24
- data/db/migrate/20131026202621_move_filter_to_messageboards.rb +0 -11
- data/db/migrate/20131029034507_convert_textile_to_markdown.rb +0 -7
- data/lib/html/pipeline/at_mention_filter.rb +0 -19
- data/lib/html/pipeline/attached_image_filter.rb +0 -59
- data/lib/html/pipeline/bbcode_filter.rb +0 -19
- data/lib/tasks/thredded_tasks.rake +0 -4
- data/lib/thredded.rb +0 -58
- data/lib/thredded/at_notification_extractor.rb +0 -15
- data/lib/thredded/at_notifier.rb +0 -67
- data/lib/thredded/at_users.rb +0 -19
- data/lib/thredded/email_processor.rb +0 -76
- data/lib/thredded/engine.rb +0 -17
- data/lib/thredded/errors.rb +0 -40
- data/lib/thredded/messageboard_user_permissions.rb +0 -27
- data/lib/thredded/post_sql_builder.rb +0 -34
- data/lib/thredded/post_user_permissions.rb +0 -41
- data/lib/thredded/private_topic_notifier.rb +0 -56
- data/lib/thredded/private_topic_user_permissions.rb +0 -38
- data/lib/thredded/search_parser.rb +0 -45
- data/lib/thredded/search_sql_builder.rb +0 -25
- data/lib/thredded/setup_thredded.rb +0 -7
- data/lib/thredded/table_sql_builder.rb +0 -105
- data/lib/thredded/topic_sql_builder.rb +0 -32
- data/lib/thredded/topic_user_permissions.rb +0 -55
- data/lib/thredded/version.rb +0 -3
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class PreferencesController < Thredded::ApplicationController
|
|
3
|
-
helper_method :preference
|
|
4
|
-
|
|
5
|
-
def edit
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def update
|
|
9
|
-
preference.update_attributes(preference_params)
|
|
10
|
-
|
|
11
|
-
redirect_to :back, flash: { notice: 'Your preferences are updated' }
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def preference
|
|
15
|
-
@preference ||= MessageboardPreference
|
|
16
|
-
.where(messageboard_id: messageboard.id, user_id: current_user.id)
|
|
17
|
-
.first_or_create!
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def preference_params
|
|
23
|
-
params
|
|
24
|
-
.require(:messageboard_preference)
|
|
25
|
-
.permit(:notify_on_mention, :notify_on_message, :filter)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class PrivateTopicsController < Thredded::ApplicationController
|
|
3
|
-
def index
|
|
4
|
-
if cannot? :read, messageboard
|
|
5
|
-
error = 'You are not authorized access to this messageboard.'
|
|
6
|
-
redirect_to default_home, flash: { error: error }
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
@private_topics = private_topics
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def new
|
|
13
|
-
@private_topic = messageboard.private_topics.build
|
|
14
|
-
@private_topic.posts.build
|
|
15
|
-
|
|
16
|
-
unless can? :create, @private_topic
|
|
17
|
-
error = 'Sorry, you are not authorized to post on this messageboard.'
|
|
18
|
-
redirect_to messageboard_topics_url(messageboard),
|
|
19
|
-
flash: { error: error }
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def create
|
|
24
|
-
@private_topic = messageboard.private_topics.create(private_topics_params)
|
|
25
|
-
|
|
26
|
-
redirect_to messageboard_topics_url(messageboard)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def private_topics
|
|
30
|
-
PrivateTopic
|
|
31
|
-
.for_messageboard(messageboard)
|
|
32
|
-
.including_roles_for(current_user)
|
|
33
|
-
.for_user(current_user)
|
|
34
|
-
.order_by_stuck_and_updated_time
|
|
35
|
-
.on_page(params[:page])
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def private_topics_params
|
|
41
|
-
params[:topic][:user_id] << current_user.id
|
|
42
|
-
|
|
43
|
-
params
|
|
44
|
-
.require(:topic)
|
|
45
|
-
.permit!
|
|
46
|
-
.deep_merge!({
|
|
47
|
-
user: current_user,
|
|
48
|
-
last_user: current_user,
|
|
49
|
-
posts_attributes: {
|
|
50
|
-
'0' => {
|
|
51
|
-
messageboard: messageboard,
|
|
52
|
-
user: current_user,
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
})
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class SetupsController < Thredded::ApplicationController
|
|
3
|
-
def new
|
|
4
|
-
@messageboard = Messageboard.new
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def create
|
|
8
|
-
@messageboard = Messageboard.create(messageboard_params)
|
|
9
|
-
|
|
10
|
-
if @messageboard.valid?
|
|
11
|
-
@messageboard.add_member(current_user, 'admin')
|
|
12
|
-
@messageboard.topics.create(topic_params)
|
|
13
|
-
|
|
14
|
-
redirect_to root_path
|
|
15
|
-
else
|
|
16
|
-
render action: :new
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def messageboard_params
|
|
23
|
-
params
|
|
24
|
-
.require(:messageboard)
|
|
25
|
-
.permit(:description, :name, :posting_permissions, :security)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def topic_params
|
|
29
|
-
{
|
|
30
|
-
user: current_user,
|
|
31
|
-
last_user: current_user,
|
|
32
|
-
title: "Welcome to your messageboard's very first thread",
|
|
33
|
-
posts_attributes: {
|
|
34
|
-
'0' => {
|
|
35
|
-
content: "There's not a whole lot here for now.",
|
|
36
|
-
ip: '127.0.0.1',
|
|
37
|
-
messageboard: @messageboard,
|
|
38
|
-
user: current_user,
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class TopicsController < Thredded::ApplicationController
|
|
3
|
-
helper_method :current_page, :topic
|
|
4
|
-
before_filter :update_user_activity
|
|
5
|
-
|
|
6
|
-
def index
|
|
7
|
-
authorize_reading messageboard
|
|
8
|
-
|
|
9
|
-
@topics = topics
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def search
|
|
13
|
-
@topics = Topic.search(params[:q], messageboard)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def new
|
|
17
|
-
@topic = messageboard.topics.build
|
|
18
|
-
@topic.posts.build
|
|
19
|
-
|
|
20
|
-
authorize_creating @topic
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def by_category
|
|
24
|
-
@topics = topics_by_category(params[:category_id])
|
|
25
|
-
@category_name = Category.find(params[:category_id]).name
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def create
|
|
29
|
-
@topic = messageboard.topics.create(topic_and_post_params)
|
|
30
|
-
redirect_to messageboard_topics_path(messageboard)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def edit
|
|
34
|
-
authorize! :update, topic
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def update
|
|
38
|
-
topic.update_attributes(topic_params)
|
|
39
|
-
redirect_to messageboard_topic_posts_url(messageboard, topic)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
private
|
|
43
|
-
|
|
44
|
-
def topic
|
|
45
|
-
@topic ||= messageboard.topics.find_by_slug(params[:id])
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def topics
|
|
49
|
-
Topic
|
|
50
|
-
.public
|
|
51
|
-
.for_messageboard(messageboard)
|
|
52
|
-
.includes(:user_topic_reads, :categories, :messageboard, :last_user, :user)
|
|
53
|
-
.order_by_stuck_and_updated_time
|
|
54
|
-
.on_page(current_page)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def topic_params
|
|
58
|
-
params
|
|
59
|
-
.require(:topic)
|
|
60
|
-
.permit!
|
|
61
|
-
.deep_merge!({
|
|
62
|
-
user: current_user,
|
|
63
|
-
last_user: current_user
|
|
64
|
-
})
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def topic_and_post_params
|
|
68
|
-
params
|
|
69
|
-
.require(:topic)
|
|
70
|
-
.permit!
|
|
71
|
-
.deep_merge!({
|
|
72
|
-
last_user: current_user,
|
|
73
|
-
user: current_user,
|
|
74
|
-
posts_attributes: {
|
|
75
|
-
'0' => {
|
|
76
|
-
messageboard: messageboard,
|
|
77
|
-
ip: request.remote_ip,
|
|
78
|
-
user: current_user,
|
|
79
|
-
filter: messageboard.filter,
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def topics_by_category(category_id)
|
|
86
|
-
topics = Category.find(category_id)
|
|
87
|
-
.topics
|
|
88
|
-
.unstuck
|
|
89
|
-
.public
|
|
90
|
-
.for_messageboard(messageboard)
|
|
91
|
-
.order_by_updated
|
|
92
|
-
.on_page(current_page)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def current_page
|
|
96
|
-
params[:page] || 1
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class MessageboardDecorator < SimpleDelegator
|
|
3
|
-
include ActionView::Helpers::NumberHelper
|
|
4
|
-
include ActionView::Helpers::TagHelper
|
|
5
|
-
|
|
6
|
-
def initialize(messageboard)
|
|
7
|
-
super
|
|
8
|
-
@messageboard = messageboard
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def original
|
|
12
|
-
messageboard
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def meta
|
|
16
|
-
topics_count = number_to_human(messageboard.topics_count)
|
|
17
|
-
posts_count = number_to_human(messageboard.posts_count)
|
|
18
|
-
|
|
19
|
-
"#{topics_count} topics, #{posts_count} posts".downcase
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def description
|
|
23
|
-
if messageboard.description.blank?
|
|
24
|
-
''
|
|
25
|
-
else
|
|
26
|
-
content_tag :p, messageboard.description
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def latest_topic_timeago
|
|
31
|
-
if latest_topic.updated_at.nil?
|
|
32
|
-
<<-eohtml.html_safe
|
|
33
|
-
<abbr>
|
|
34
|
-
a little while ago
|
|
35
|
-
</abbr>
|
|
36
|
-
eohtml
|
|
37
|
-
else
|
|
38
|
-
<<-eohtml.html_safe
|
|
39
|
-
<abbr class="timeago" title="#{topic_updated_at_utc}">
|
|
40
|
-
#{topic_updated_at_str}
|
|
41
|
-
</abbr>
|
|
42
|
-
eohtml
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def latest_topic
|
|
47
|
-
@latest_topic ||= messageboard.topics.order('updated_at DESC').first || Thredded::NullTopic.new
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def latest_user
|
|
51
|
-
latest_topic.last_user
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def category_options
|
|
55
|
-
messageboard.categories.map { |cat| [cat.name, cat.id] }
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def users_options
|
|
59
|
-
messageboard.users.map { |user| [user.to_s, user.id] }
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
private
|
|
63
|
-
|
|
64
|
-
attr_reader :messageboard
|
|
65
|
-
|
|
66
|
-
def topic_updated_at_utc
|
|
67
|
-
latest_topic.updated_at.getutc.iso8601
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def topic_updated_at_str
|
|
71
|
-
latest_topic.updated_at.to_s
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class PostDecorator < SimpleDelegator
|
|
3
|
-
attr_reader :post
|
|
4
|
-
|
|
5
|
-
def initialize(post)
|
|
6
|
-
super
|
|
7
|
-
@post = post
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def user_name
|
|
11
|
-
if user
|
|
12
|
-
user.to_s
|
|
13
|
-
else
|
|
14
|
-
'Anonymous'
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def user_link
|
|
19
|
-
if post.user
|
|
20
|
-
user_path = Thredded.user_path(post.user)
|
|
21
|
-
"<a href='#{user_path}'>#{post.user}</a>".html_safe
|
|
22
|
-
else
|
|
23
|
-
'<a href="#">?</a>'.html_safe
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def original
|
|
28
|
-
post
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def created_at_timeago
|
|
32
|
-
if created_at.nil?
|
|
33
|
-
<<-eohtml.strip_heredoc.html_safe
|
|
34
|
-
<abbr>
|
|
35
|
-
a little while ago
|
|
36
|
-
</abbr>
|
|
37
|
-
eohtml
|
|
38
|
-
else
|
|
39
|
-
<<-eohtml.strip_heredoc.html_safe
|
|
40
|
-
<abbr class="timeago" title="#{created_at_utc}">
|
|
41
|
-
#{created_at_str}
|
|
42
|
-
</abbr>
|
|
43
|
-
eohtml
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def gravatar_url
|
|
48
|
-
super.gsub(/http:/, '')
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
private
|
|
52
|
-
|
|
53
|
-
def created_at_str
|
|
54
|
-
created_at.getutc.to_s
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def created_at_utc
|
|
58
|
-
created_at.getutc.iso8601
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
module Thredded
|
|
2
|
-
class TopicDecorator < SimpleDelegator
|
|
3
|
-
include Rails.application.routes.url_helpers
|
|
4
|
-
include ActionView::Helpers::UrlHelper
|
|
5
|
-
|
|
6
|
-
attr_reader :topic
|
|
7
|
-
|
|
8
|
-
def initialize(topic)
|
|
9
|
-
super
|
|
10
|
-
@topic = topic
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def slug
|
|
14
|
-
topic.slug.nil? ? topic.id : topic.slug
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def css_class
|
|
18
|
-
classes = []
|
|
19
|
-
classes << 'locked' if locked?
|
|
20
|
-
classes << 'sticky' if sticky?
|
|
21
|
-
classes << 'private' if private?
|
|
22
|
-
classes += ['category'] + categories.map(&:name) if categories.present?
|
|
23
|
-
classes.join(' ')
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def last_user_link
|
|
27
|
-
if last_user && last_user.to_s != 'Anonymous User'
|
|
28
|
-
last_user_path = Thredded.user_path(last_user)
|
|
29
|
-
|
|
30
|
-
"<a href='#{last_user_path}'>#{last_user}</a>".html_safe
|
|
31
|
-
else
|
|
32
|
-
last_user.to_s
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def original
|
|
37
|
-
topic
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def updated_at_timeago
|
|
41
|
-
if updated_at.nil?
|
|
42
|
-
<<-eohtml.html_safe
|
|
43
|
-
<abbr>
|
|
44
|
-
a little while ago
|
|
45
|
-
</abbr>
|
|
46
|
-
eohtml
|
|
47
|
-
else
|
|
48
|
-
<<-eohtml.html_safe
|
|
49
|
-
<abbr class="timeago" title="#{updated_at_utc}">
|
|
50
|
-
#{updated_at_str}
|
|
51
|
-
</abbr>
|
|
52
|
-
eohtml
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def created_at_timeago
|
|
57
|
-
if created_at.nil?
|
|
58
|
-
<<-eohtml.html_safe
|
|
59
|
-
<abbr class="started_at">
|
|
60
|
-
a little while ago
|
|
61
|
-
</abbr>
|
|
62
|
-
eohtml
|
|
63
|
-
else
|
|
64
|
-
<<-eohtml.html_safe
|
|
65
|
-
<abbr class="started_at timeago" title="#{created_at_utc}">
|
|
66
|
-
#{created_at_str}
|
|
67
|
-
</abbr>
|
|
68
|
-
eohtml
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def gravatar_url
|
|
73
|
-
super.gsub /http:/, ''
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
private
|
|
77
|
-
|
|
78
|
-
def updated_at_str
|
|
79
|
-
updated_at.to_s
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def updated_at_utc
|
|
83
|
-
updated_at.getutc.iso8601
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def created_at_str
|
|
87
|
-
created_at.to_s
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def created_at_utc
|
|
91
|
-
created_at.getutc.iso8601
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|